home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac-Source 1994 July
/
Mac-Source_July_1994.iso
/
Other Langs
/
MacPerl ƒ
/
Perl Source ƒ
/
Perl
/
perly.c
< prev
next >
Wrap
Text File
|
1993-10-23
|
143KB
|
3,284 lines
#ifndef lint
static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91";
#endif
#define YYBYACC 1
#line 37 ":perly.y"
#include "INTERN.h"
#include "perl.h"
/*SUPPRESS 530*/
/*SUPPRESS 593*/
/*SUPPRESS 595*/
STAB *scrstab;
ARG *arg4; /* rarely used arguments to make_op() */
ARG *arg5;
ARG *arg6;
#line 52 ":perly.y"
typedef union {
int ival;
char *cval;
ARG *arg;
CMD *cmdval;
struct compcmd compval;
STAB *stabval;
FCMD *formval;
} YYSTYPE;
#line 28 "y.tab.c"
#define WORD 257
#define LABEL 258
#define APPEND 259
#define OPEN 260
#define SSELECT 261
#define LOOPEX 262
#define DOTDOT 263
#define USING 264
#define FORMAT 265
#define DO 266
#define SHIFT 267
#define PUSH 268
#define POP 269
#define LVALFUN 270
#define CHOOSE 271
#define FMIN1 272
#define FUNC12 273
#define WHILE 274
#define UNTIL 275
#define IF 276
#define UNLESS 277
#define ELSE 278
#define ELSIF 279
#define CONTINUE 280
#define SPLIT 281
#define FLIST 282
#define FOR 283
#define FILOP 284
#define FILOP2 285
#define FILOP3 286
#define FILOP4 287
#define FILOP22 288
#define FILOP25 289
#define FUNC0 290
#define FUNC1 291
#define FUNC2 292
#define FUNC2x 293
#define FUNC3 294
#define FUNC4 295
#define FUNC5 296
#define HSHFUN 297
#define HSHFUN3 298
#define FLIST2 299
#define SUB 300
#define FILETEST 301
#define LOCAL 302
#define DELETE 303
#define RELOP 304
#define EQOP 305
#define MULOP 306
#define ADDOP 307
#define PACKAGE 308
#define AMPER 309
#define FORMLIST 310
#define REG 311
#define ARYLEN 312
#define ARY 313
#define HSH 314
#define STAR 315
#define SUBST 316
#define PATTERN 317
#define RSTRING 318
#define TRANS 319
#define LISTOP 320
#define OROR 321
#define ANDAND 322
#define UNIOP 323
#define LS 324
#define RS 325
#define MATCH 326
#define NMATCH 327
#define UMINUS 328
#define POW 329
#define INC 330
#define DEC 331
#define YYERRCODE 256
short yylhs[] = { -1,
26, 0, 25, 25, 12, 12, 12, 5, 3, 6,
6, 7, 7, 7, 7, 7, 10, 10, 10, 10,
10, 10, 9, 9, 9, 9, 8, 8, 8, 8,
8, 8, 8, 8, 11, 11, 21, 21, 24, 24,
1, 1, 1, 2, 2, 27, 28, 15, 13, 13,
16, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 22,
22, 22, 22, 22, 22, 18, 18, 19, 19, 20,
20, 4, 4, 23,
};
short yylen[] = { 2,
0, 2, 3, 2, 0, 2, 5, 4, 0, 0,
2, 1, 2, 1, 2, 3, 1, 1, 3, 3,
3, 3, 5, 5, 3, 3, 6, 6, 4, 4,
7, 6, 10, 2, 0, 1, 0, 1, 0, 1,
1, 1, 1, 4, 3, 3, 3, 2, 3, 1,
2, 3, 4, 4, 4, 4, 4, 4, 4, 4,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 5, 3, 3, 1, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 1, 4, 3,
2, 2, 2, 1, 1, 4, 1, 1, 5, 6,
5, 4, 5, 6, 8, 1, 1, 1, 1, 1,
5, 5, 4, 4, 2, 5, 5, 4, 4, 2,
1, 2, 1, 2, 2, 1, 2, 4, 7, 2,
4, 5, 4, 2, 2, 3, 1, 5, 6, 6,
7, 9, 6, 2, 4, 2, 4, 1, 1, 6,
5, 4, 5, 4, 4, 5, 2, 1, 1, 3,
3, 4, 5, 5, 6, 4, 5, 6, 7, 8,
6, 7, 8, 9, 4, 2, 6, 1, 1, 1,
2, 2, 3, 3, 3, 1, 1, 1, 1, 1,
1, 2, 1, 1,
};
short yydefred[] = { 1,
0, 10, 0, 40, 0, 0, 0, 12, 41, 11,
14, 0, 42, 43, 0, 0, 0, 0, 17, 9,
194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
106, 0, 97, 95, 109, 108, 107, 110, 0, 0,
0, 0, 0, 0, 0, 15, 0, 0, 0, 13,
0, 0, 0, 0, 179, 178, 34, 0, 45, 46,
47, 10, 130, 0, 127, 0, 122, 0, 0, 93,
0, 188, 189, 0, 146, 0, 0, 144, 157, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 134, 135, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 190,
191, 0, 176, 0, 0, 86, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
124, 0, 0, 0, 84, 85, 0, 0, 0, 0,
0, 0, 0, 4, 16, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 82, 83, 44,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 29, 0, 30,
0, 25, 0, 26, 0, 0, 0, 36, 0, 0,
136, 0, 0, 0, 0, 0, 0, 160, 161, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 193, 0, 0, 6, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 8, 131, 0,
0, 0, 0, 128, 113, 0, 118, 0, 147, 0,
145, 0, 155, 0, 166, 0, 0, 0, 0, 0,
152, 0, 154, 0, 0, 0, 133, 0, 0, 0,
0, 0, 162, 0, 0, 0, 0, 0, 175, 0,
0, 89, 0, 0, 114, 0, 119, 0, 0, 96,
0, 102, 0, 192, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 132, 0, 0, 111,
116, 0, 0, 156, 167, 27, 28, 23, 24, 151,
0, 0, 0, 32, 138, 0, 0, 0, 0, 163,
164, 0, 0, 0, 0, 0, 153, 0, 0, 112,
117, 99, 103, 101, 0, 0, 0, 0, 143, 171,
0, 150, 31, 0, 139, 0, 140, 0, 165, 168,
0, 0, 177, 104, 0, 100, 7, 129, 172, 0,
0, 141, 0, 169, 0, 0, 173, 0, 0, 0,
170, 105, 174, 33, 142,
};
short yydgoto[] = { 1,
8, 9, 92, 264, 79, 3, 10, 11, 80, 228,
229, 174, 82, 83, 301, 303, 84, 204, 105, 143,
217, 85, 86, 12, 87, 2, 13, 14,
};
short yysindex[] = { 0,
0, 0, -163, 0, -58, -188, -180, 0, 0, 0,
0, 464, 0, 0, 29, -191, 17, 89, 0, 0,
0, -29, -20, -102, 385, -28, 137, -26, 3241, 164,
166, 177, -3, 2, 3, 9, 179, 185, -39, -35,
202, 209, 211, 212, 214, 216, 217, 220, 226, 228,
231, 235, -36, 237, 240, 3530, 248, -25, -235, -51,
0, -12, 0, 0, 0, 0, 0, 0, 825, 892,
3241, 3241, 3241, 3241, 964, 0, 3241, 3241, 110, 0,
205, 134, 1178, -134, 0, 0, 0, -69, 0, 0,
0, 0, 0, 3597, 0, 3669, 0, 249, -5, 0,
208, 0, 0, -233, 0, -233, -233, 0, 0, 3241,
3241, 3241, 3241, 17, 3241, 17, 3241, 17, 3241, 17,
3241, 3241, 252, 1253, 0, 0, 1320, 3669, 3669, 3669,
3669, 3669, 207, 1392, 3241, 3241, 3241, 3241, 3241, 0,
0, -236, 0, -236, 3241, 0, 208, 3241, 170, -4,
266, 270, 3241, 3241, 3241, 3241, 3241, 6351, 3241, 272,
0, 208, -134, -134, 0, 0, 229, 50, -134, -134,
17, 286, 17, 0, 0, 3241, 3241, 3241, 3241, 3241,
3241, 3241, 3241, 1681, 1748, 3241, 3241, 3241, 3241, 1820,
2109, 2176, 2248, 2537, 3241, 3241, 2604, 0, 0, 0,
-116, 289, 1178, 295, 0, 6208, 302, 2676, 2743, 306,
318, 322, 6208, 1861, 2289, 272, 323, 0, 103, 0,
135, 0, 144, 0, 5484, 50, 3241, 0, 335, 20,
0, 364, 295, 362, 362, 368, 369, 0, 0, 145,
6265, 6208, 6208, 6208, 6208, 375, 362, 6265, 50, 3241,
294, 3035, 3102, -15, -19, -13, -18, 272, 272, 272,
3241, 0, 3174, 328, 0, 3241, 0, 272, 272, 272,
272, 1178, 224, 208, -113, 3241, -288, 3241, -176, 1178,
1608, 297, 567, 3241, -2, 3241, -2, 3241, -124, 3241,
173, 3241, 173, 91, 91, 3241, 91, 0, 0, 3241,
382, 3241, 362, 0, 0, 50, 0, 50, 0, 3241,
0, 362, 0, 383, 0, 386, 17, 17, 17, 17,
0, 146, 0, 50, 3241, 17, 0, 388, 295, 362,
3669, 3669, 0, 392, 154, 295, 362, 362, 0, 295,
393, 0, 37, 3241, 0, 50, 0, 50, 301, 0,
313, 0, -10, 0, 3241, 182, 1178, 1178, 3241, 1178,
1178, 1178, 1178, 1178, 1178, 272, 0, 1178, 362, 0,
0, 50, 183, 0, 0, 0, 0, 0, 0, 0,
398, 17, 381, 0, 0, 412, 295, 413, 362, 0,
0, 414, 434, 295, 362, 440, 0, 357, 38, 0,
0, 0, 0, 0, 6, 17, 2032, 442, 0, 0,
189, 0, 0, 1253, 0, 444, 0, 362, 0, 0,
455, 295, 0, 0, 376, 0, 0, 0, 0, 194,
462, 0, 295, 0, 469, 471, 0, 472, 17, 475,
0, 0, 0, 0, 0,
};
short yyrindex[] = { 0,
0, 0, 175, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 3935, 3972, 0, 4009, 0, 0, 5642, 0,
0, 0, 0, 0, 0, 0, 4046, 0, 0, 4083,
0, 0, 0, 0, 0, 4120, 0, 0, 0, 0,
0, 0, 0, 0, 0, 5738, 0, 0, 0, 4158,
0, 4414, 0, 0, 0, 0, 0, 0, 5806, 5815,
0, 0, 0, 0, 0, 0, 0, 0, 84, 0,
0, 26, 4248, 5882, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 4452, 4158, 0,
5394, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 476, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 463, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 5418, 0, 0, 0,
4489, 4526, 0, 0, 0, 0, 5961, 4158, 0, 4637,
0, 5456, 6105, 6181, 0, 0, 4563, 0, 6218, 6278,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
536, 1433, 195, 0, 984, 484, 0, 0, 0, 0,
0, 0, 0, 0, 0, 51, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 465,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 4857, 4894, 4931,
0, 0, 0, 4600, 0, 0, 0, 62, 82, 87,
93, 4285, 3672, -31, 5494, 0, 5042, 0, 5080, 4322,
0, 6516, 6438, 0, 5831, 0, 6614, 0, 5518, 0,
5330, 0, 5354, 7, 4968, 0, 5005, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 467, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 4728, 4765, 0, 5293,
6405, 6522, 6644, 6651, 6681, 495, 0, 206, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 3507, 0, 0, 0,
0, 0, 0, 497, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
};
short yygindex[] = { 0,
0, 0, 0, 614, -17, 447, 0, 0, 0, 528,
127, 0, 6871, -23, 647, 2852, 483, -73, 32, -9,
218, 0, 0, 0, 201, 0, 0, 0,
};
#define YYTABLESIZE 7226
short yytable[] = { 90,
124, 101, 16, 142, 127, 109, 66, 100, 298, 66,
94, 104, 66, 107, 150, 114, 116, 118, 120, 96,
140, 151, 207, 102, 180, 180, 66, 66, 180, 66,
180, 66, 147, 180, 209, 192, 113, 195, 196, 154,
197, 115, 117, 349, 75, 351, 162, 75, 119, 180,
75, 159, 161, 232, 233, 234, 235, 236, 237, 108,
262, 66, 66, 263, 75, 75, 18, 75, 17, 75,
203, 153, 206, 350, 352, 152, 18, 141, 156, 103,
180, 180, 404, 5, 18, 154, 213, 214, 215, 88,
262, 38, 66, 263, 4, 398, 425, 225, 426, 75,
75, 5, 21, 203, 203, 203, 203, 203, 203, 38,
155, 241, 242, 243, 244, 245, 5, 153, 89, 20,
21, 248, 22, 5, 20, 20, 5, 19, 5, 184,
75, 20, 246, 20, 247, 210, 6, 211, 212, 20,
22, 4, 5, 318, 7, 19, 180, 91, 5, 195,
196, 20, 197, 265, 97, 267, 272, 273, 274, 275,
277, 279, 280, 281, 282, 283, 285, 287, 289, 291,
293, 294, 295, 297, 2, 319, 106, 180, 180, 182,
183, 184, 185, 6, 320, 333, 380, 180, 180, 302,
182, 7, 184, 185, 391, 198, 199, 300, 15, 193,
194, 195, 196, 110, 197, 111, 5, 39, 5, 5,
193, 194, 195, 196, 39, 197, 112, 39, 121, 39,
140, 125, 406, 410, 122, 180, 302, 93, 102, 429,
102, 66, 302, 39, 437, 187, 95, 302, 187, 272,
200, 128, 66, 66, 66, 66, 51, 238, 129, 51,
130, 131, 357, 132, 358, 133, 134, 388, 389, 135,
360, 192, 361, 175, 362, 136, 363, 137, 364, 75,
138, 123, 365, 66, 139, 126, 144, 141, 368, 145,
75, 75, 75, 75, 103, 149, 103, 148, 208, 66,
66, 227, 250, 176, 177, 178, 179, 39, 66, 66,
39, 182, 183, 184, 185, 252, 251, 203, 203, 253,
75, 75, 75, 75, 218, 180, 220, 191, 222, 261,
224, 193, 194, 195, 196, 266, 197, 75, 75, 299,
75, 75, 75, 75, 192, 407, 75, 75, 300, 5,
5, 5, 304, 5, 5, 5, 309, 190, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 310, 311, 317, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 171, 172, 173,
191, 5, 5, 325, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 327, 302, 5, 176, 177, 178,
179, 331, 332, 5, 5, 339, 344, 71, 355, 197,
190, 444, 367, 374, 75, 402, 375, 78, 385, 77,
39, 39, 390, 397, 39, 39, 39, 403, 412, 414,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 415, 417, 419, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 420, 39, 39, 39, 184, 185,
423, 424, 428, 39, 432, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 434, 71, 39, 195, 196,
436, 197, 439, 75, 39, 39, 78, 20, 77, 441,
72, 442, 443, 184, 185, 445, 37, 376, 377, 378,
379, 35, 76, 18, 187, 37, 384, 182, 183, 184,
185, 193, 194, 195, 196, 48, 197, 35, 201, 81,
431, 0, 383, 0, 188, 189, 0, 193, 194, 195,
196, 0, 197, 163, 164, 165, 166, 0, 0, 169,
170, 0, 0, 0, 0, 0, 0, 0, 39, 0,
0, 0, 0, 0, 0, 39, 0, 0, 39, 0,
39, 0, 413, 0, 0, 0, 20, 0, 0, 72,
0, 0, 0, 0, 39, 0, 0, 0, 0, 0,
182, 183, 184, 185, 192, 0, 427, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 189, 0,
193, 194, 195, 196, 0, 197, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 98, 0, 0, 22, 23, 24, 0, 0, 0,
25, 26, 27, 28, 29, 30, 31, 32, 39, 0,
191, 39, 0, 0, 0, 37, 38, 0, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 54, 55, 0, 56, 57, 58, 0, 0,
190, 0, 0, 59, 0, 99, 61, 62, 63, 64,
65, 66, 67, 68, 69, 0, 0, 70, 0, 0,
0, 0, 0, 0, 73, 74, 0, 0, 0, 19,
21, 0, 0, 22, 23, 24, 0, 0, 0, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 0, 0, 0, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 0, 56, 57, 58, 0, 0, 0,
0, 0, 59, 0, 60, 61, 62, 63, 64, 65,
66, 67, 68, 69, 0, 0, 70, 0, 0, 0,
0, 39, 39, 73, 74, 39, 39, 39, 0, 0,
0, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 0, 0, 0, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 0, 39, 39, 39, 323,
0, 0, 0, 326, 39, 0, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 0, 71, 39, 0,
314, 316, 342, 0, 75, 39, 39, 78, 0, 77,
182, 183, 184, 185, 0, 0, 0, 0, 0, 328,
0, 0, 0, 0, 0, 0, 0, 334, 0, 0,
193, 194, 195, 196, 341, 197, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 370,
0, 371, 0, 0, 71, 0, 0, 0, 0, 0,
0, 75, 0, 0, 78, 0, 77, 382, 0, 0,
0, 0, 0, 0, 0, 0, 0, 20, 0, 0,
72, 0, 0, 0, 0, 0, 0, 0, 0, 400,
0, 401, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 386, 0, 0, 0, 0,
0, 392, 393, 0, 0, 409, 396, 0, 0, 0,
0, 0, 0, 0, 0, 0, 71, 0, 0, 0,
0, 0, 0, 75, 167, 0, 78, 0, 77, 0,
0, 0, 0, 0, 20, 0, 0, 72, 0, 0,
0, 194, 0, 0, 186, 0, 0, 186, 0, 0,
0, 0, 0, 416, 0, 0, 0, 0, 0, 0,
421, 0, 0, 0, 194, 0, 194, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 435, 0,
0, 0, 0, 0, 0, 0, 0, 194, 0, 440,
0, 157, 0, 0, 22, 23, 24, 0, 0, 72,
25, 26, 27, 28, 29, 30, 31, 32, 0, 0,
0, 0, 0, 0, 0, 37, 38, 194, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 54, 55, 0, 56, 57, 58, 0, 0,
0, 0, 0, 59, 0, 158, 61, 62, 63, 64,
65, 66, 67, 68, 69, 0, 0, 70, 21, 0,
0, 22, 23, 24, 73, 74, 0, 25, 26, 27,
28, 29, 30, 31, 32, 0, 0, 0, 0, 0,
0, 0, 37, 38, 0, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 0, 56, 57, 58, 0, 0, 0, 0, 0,
59, 0, 60, 61, 62, 63, 64, 65, 66, 67,
68, 69, 0, 0, 70, 192, 0, 0, 0, 0,
21, 73, 74, 22, 23, 24, 0, 0, 0, 25,
26, 27, 28, 29, 30, 31, 32, 0, 186, 0,
187, 0, 0, 0, 37, 38, 194, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 0, 56, 57, 58, 0, 0, 0,
0, 191, 59, 0, 60, 61, 62, 63, 64, 65,
66, 67, 68, 69, 0, 71, 70, 194, 194, 194,
194, 0, 75, 73, 74, 78, 0, 77, 0, 0,
0, 190, 0, 0, 194, 194, 0, 194, 194, 194,
194, 0, 194, 194, 194, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 71, 0, 0, 0, 0, 0, 0, 75,
231, 0, 78, 0, 77, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 72, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 71, 0, 0, 0, 0, 0,
0, 75, 239, 0, 78, 0, 77, 0, 0, 0,
181, 0, 0, 0, 0, 72, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
194, 0, 0, 0, 0, 0, 186, 0, 0, 0,
0, 182, 183, 184, 185, 0, 0, 0, 0, 0,
0, 0, 0, 194, 0, 194, 0, 0, 188, 189,
0, 193, 194, 195, 196, 0, 197, 0, 19, 21,
0, 0, 22, 23, 24, 0, 0, 72, 25, 26,
27, 28, 29, 30, 31, 32, 194, 0, 0, 0,
0, 0, 0, 37, 38, 0, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 0, 56, 57, 58, 194, 0, 0, 0,
0, 59, 0, 60, 61, 62, 63, 64, 65, 66,
67, 68, 69, 0, 0, 70, 205, 0, 0, 22,
23, 24, 73, 74, 0, 25, 26, 27, 28, 29,
30, 31, 32, 0, 0, 0, 0, 0, 0, 0,
37, 38, 0, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 0,
56, 57, 58, 0, 0, 0, 0, 0, 59, 0,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
0, 0, 70, 0, 0, 192, 0, 0, 21, 73,
74, 22, 23, 24, 0, 0, 0, 25, 26, 27,
28, 29, 30, 31, 32, 359, 0, 0, 186, 0,
187, 0, 37, 38, 0, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 0, 56, 57, 58, 194, 0, 0, 0, 0,
59, 191, 60, 61, 62, 63, 64, 65, 66, 67,
68, 69, 0, 71, 70, 0, 0, 0, 0, 0,
75, 73, 74, 78, 0, 77, 0, 0, 0, 0,
0, 190, 0, 0, 0, 0, 194, 194, 194, 194,
0, 276, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 194, 194, 0, 194, 194, 194, 194,
0, 194, 194, 194, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
71, 0, 0, 0, 0, 0, 0, 75, 0, 0,
78, 0, 77, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 72, 0, 278, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 71, 0, 0, 0, 0, 0, 0, 75,
0, 0, 78, 0, 77, 0, 0, 0, 0, 0,
181, 0, 0, 72, 0, 0, 0, 0, 0, 0,
284, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 192, 0,
0, 313, 0, 0, 300, 0, 0, 0, 0, 0,
0, 182, 183, 184, 185, 0, 0, 0, 0, 0,
0, 186, 0, 187, 0, 0, 0, 0, 188, 189,
0, 193, 194, 195, 196, 0, 197, 21, 0, 0,
22, 23, 24, 0, 0, 72, 25, 26, 27, 28,
29, 30, 31, 32, 191, 0, 0, 0, 0, 0,
0, 37, 38, 0, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
0, 56, 57, 58, 190, 0, 0, 0, 0, 59,
0, 60, 61, 62, 63, 64, 65, 66, 67, 68,
69, 0, 0, 70, 21, 0, 0, 22, 23, 24,
73, 74, 0, 25, 26, 27, 28, 29, 30, 31,
32, 0, 0, 0, 0, 0, 0, 0, 37, 38,
0, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 0, 56, 57,
58, 0, 0, 0, 0, 0, 59, 0, 60, 61,
62, 63, 64, 65, 66, 67, 68, 69, 0, 192,
70, 0, 0, 0, 0, 0, 21, 73, 74, 22,
23, 24, 0, 0, 0, 25, 26, 27, 28, 29,
30, 31, 32, 0, 187, 0, 0, 0, 0, 0,
37, 38, 0, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 0,
56, 57, 58, 181, 0, 191, 0, 0, 59, 0,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
0, 71, 70, 0, 0, 0, 0, 0, 75, 73,
74, 78, 0, 77, 0, 190, 0, 0, 0, 0,
0, 0, 0, 0, 182, 183, 184, 185, 0, 286,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 188, 189, 0, 193, 194, 195, 196, 0, 197,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 71, 0,
0, 0, 0, 0, 0, 75, 0, 0, 78, 0,
77, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 72, 0, 288, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
71, 0, 0, 0, 0, 0, 0, 75, 0, 0,
78, 0, 77, 0, 181, 0, 0, 0, 0, 0,
0, 72, 0, 0, 0, 0, 0, 0, 290, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 192, 0, 0, 315,
0, 0, 300, 0, 0, 182, 183, 184, 185, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 186,
0, 187, 188, 189, 0, 193, 194, 195, 196, 0,
197, 0, 0, 0, 0, 21, 0, 0, 22, 23,
24, 0, 0, 72, 25, 26, 27, 28, 29, 30,
31, 32, 191, 0, 0, 0, 0, 0, 0, 37,
38, 0, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 0, 56,
57, 58, 190, 0, 0, 0, 0, 59, 0, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 0,
0, 70, 21, 0, 0, 22, 23, 24, 73, 74,
0, 25, 26, 27, 28, 29, 30, 31, 32, 0,
0, 0, 0, 0, 0, 0, 37, 38, 0, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 0, 56, 57, 58, 0,
0, 0, 0, 0, 59, 0, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 0, 0, 70, 0,
0, 0, 0, 0, 21, 73, 74, 22, 23, 24,
0, 0, 0, 25, 26, 27, 28, 29, 30, 31,
32, 0, 0, 0, 0, 0, 0, 0, 37, 38,
0, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 0, 56, 57,
58, 181, 0, 0, 0, 0, 59, 0, 60, 61,
62, 63, 64, 65, 66, 67, 68, 69, 0, 71,
70, 0, 0, 0, 0, 0, 75, 73, 74, 78,
0, 77, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 182, 183, 184, 185, 0, 292, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
189, 0, 193, 194, 195, 196, 0, 197, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 71, 0, 0, 0,
0, 0, 0, 75, 0, 0, 78, 0, 77, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 72, 0, 296, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 71, 0,
0, 0, 0, 0, 0, 75, 305, 0, 78, 0,
77, 0, 0, 0, 0, 0, 0, 0, 0, 72,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 71, 0, 0, 0, 0,
0, 0, 75, 307, 0, 78, 0, 77, 0, 0,
0, 0, 0, 21, 0, 0, 22, 23, 24, 0,
0, 72, 25, 26, 27, 28, 29, 30, 31, 32,
0, 0, 0, 0, 0, 0, 0, 37, 38, 0,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, 53, 54, 55, 0, 56, 57, 58,
0, 0, 0, 0, 0, 59, 0, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 0, 0, 70,
21, 0, 0, 22, 23, 24, 73, 74, 72, 25,
26, 27, 28, 29, 30, 31, 32, 0, 0, 0,
0, 0, 0, 0, 37, 38, 0, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 0, 56, 57, 58, 0, 0, 0,
0, 0, 59, 0, 60, 61, 62, 63, 64, 65,
66, 67, 68, 69, 0, 0, 70, 0, 0, 0,
0, 0, 21, 73, 74, 22, 23, 24, 0, 0,
0, 25, 26, 27, 28, 29, 30, 31, 32, 0,
0, 0, 0, 0, 0, 0, 37, 38, 0, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 0, 56, 57, 58, 0,
0, 0, 0, 0, 59, 0, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 0, 0, 70, 21,
0, 0, 22, 23, 24, 73, 74, 0, 25, 26,
27, 28, 29, 30, 31, 32, 0, 0, 0, 0,
0, 0, 0, 37, 38, 0, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 0, 56, 57, 58, 0, 0, 0, 0,
0, 59, 0, 60, 61, 62, 63, 64, 65, 66,
67, 68, 69, 0, 312, 70, 0, 71, 0, 0,
0, 0, 73, 74, 75, 345, 322, 78, 0, 77,
0, 0, 0, 0, 0, 329, 330, 0, 0, 0,
0, 0, 0, 335, 336, 337, 338, 0, 340, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 71, 0, 0, 0, 0, 0,
0, 75, 347, 0, 78, 0, 77, 0, 0, 0,
0, 0, 0, 0, 369, 0, 0, 0, 0, 0,
72, 0, 0, 373, 0, 0, 0, 0, 0, 0,
0, 0, 0, 381, 0, 0, 0, 0, 0, 0,
0, 387, 0, 0, 0, 0, 0, 0, 394, 395,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 71, 0, 0, 0,
0, 0, 0, 75, 354, 0, 78, 0, 77, 0,
408, 0, 0, 0, 411, 0, 0, 72, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
418, 0, 0, 0, 0, 0, 422, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 430, 0, 0, 0, 0, 0, 0, 433,
0, 0, 0, 71, 0, 0, 0, 0, 0, 0,
75, 438, 0, 78, 0, 77, 0, 0, 0, 0,
0, 21, 0, 0, 22, 23, 24, 0, 0, 72,
25, 26, 27, 28, 29, 30, 31, 32, 0, 0,
0, 0, 0, 0, 0, 37, 38, 0, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 54, 55, 0, 56, 57, 58, 0, 0,
0, 0, 0, 59, 0, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 0, 0, 70, 21, 0,
0, 22, 23, 24, 73, 74, 72, 25, 26, 27,
28, 29, 30, 31, 32, 0, 0, 0, 0, 0,
0, 0, 37, 38, 0, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 0, 56, 57, 58, 0, 0, 0, 0, 0,
59, 0, 60, 61, 62, 63, 64, 65, 66, 67,
68, 69, 0, 0, 70, 0, 0, 0, 0, 0,
21, 73, 74, 22, 23, 24, 0, 0, 0, 25,
26, 27, 28, 29, 30, 31, 32, 0, 0, 0,
0, 0, 0, 0, 37, 38, 0, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 0, 56, 57, 58, 0, 0, 0,
0, 0, 59, 0, 60, 61, 62, 63, 64, 65,
66, 67, 68, 69, 0, 0, 70, 21, 0, 0,
22, 23, 24, 73, 74, 0, 25, 26, 27, 28,
29, 30, 31, 32, 0, 0, 0, 0, 0, 0,
0, 37, 38, 0, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
0, 56, 57, 58, 0, 0, 0, 74, 0, 59,
74, 60, 61, 62, 63, 64, 65, 66, 67, 68,
69, 0, 71, 70, 74, 74, 0, 74, 0, 75,
73, 74, 78, 0, 77, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 74,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 71,
0, 0, 0, 0, 0, 0, 75, 0, 0, 78,
0, 77, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 72, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 71, 0, 0, 0, 0, 0, 0, 75, 0,
0, 78, 71, 77, 0, 71, 0, 0, 0, 0,
0, 0, 72, 0, 0, 0, 0, 0, 0, 71,
71, 0, 71, 0, 71, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 71, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
74, 74, 74, 74, 0, 0, 146, 0, 0, 22,
23, 24, 0, 0, 72, 25, 26, 27, 28, 29,
30, 31, 32, 0, 0, 0, 0, 0, 0, 0,
37, 38, 0, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 0,
56, 57, 58, 0, 0, 0, 74, 74, 59, 0,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
0, 0, 70, 202, 0, 0, 22, 23, 24, 73,
74, 0, 25, 26, 27, 28, 29, 30, 31, 32,
0, 0, 0, 0, 0, 0, 0, 37, 38, 0,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, 53, 54, 55, 0, 56, 57, 58,
0, 0, 0, 0, 0, 59, 0, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 0, 0, 70,
0, 0, 0, 0, 0, 205, 73, 74, 22, 23,
24, 0, 0, 0, 25, 26, 27, 28, 29, 30,
31, 32, 0, 0, 0, 71, 71, 71, 71, 37,
38, 0, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 0, 56,
57, 58, 126, 0, 0, 126, 0, 59, 126, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 0,
0, 70, 126, 126, 0, 126, 0, 126, 73, 74,
0, 71, 71, 0, 0, 0, 0, 0, 0, 121,
0, 0, 121, 0, 0, 121, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 126, 126, 121,
121, 0, 121, 0, 121, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 148, 0, 0, 148,
0, 0, 148, 0, 0, 0, 0, 0, 126, 0,
0, 0, 0, 0, 121, 121, 148, 148, 0, 148,
0, 148, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 149, 0, 0, 149, 0, 0, 149,
0, 0, 0, 0, 0, 121, 0, 0, 0, 0,
0, 148, 148, 149, 149, 0, 149, 0, 149, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
137, 0, 0, 137, 0, 0, 137, 0, 0, 0,
0, 0, 148, 0, 0, 0, 0, 0, 149, 149,
137, 137, 0, 137, 0, 137, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 159, 0, 0,
159, 0, 0, 159, 0, 0, 0, 0, 0, 149,
0, 0, 0, 0, 0, 137, 137, 159, 159, 0,
159, 0, 159, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 94, 0, 126, 94, 0,
0, 94, 0, 0, 0, 0, 137, 0, 126, 126,
126, 126, 159, 159, 0, 94, 94, 0, 94, 0,
94, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 121, 0, 0, 0, 126, 126,
126, 126, 0, 159, 0, 121, 121, 121, 121, 0,
94, 94, 0, 0, 0, 126, 126, 0, 126, 126,
126, 126, 0, 126, 126, 126, 0, 0, 0, 0,
0, 148, 0, 0, 0, 121, 121, 121, 121, 0,
0, 94, 148, 148, 148, 148, 0, 0, 50, 0,
0, 50, 121, 121, 0, 121, 121, 121, 121, 0,
121, 121, 121, 0, 0, 50, 50, 0, 149, 0,
0, 0, 148, 148, 148, 148, 0, 0, 0, 149,
149, 149, 149, 0, 0, 49, 0, 0, 49, 148,
148, 0, 148, 148, 148, 148, 0, 148, 148, 148,
50, 0, 49, 49, 0, 137, 0, 0, 0, 149,
149, 149, 149, 0, 0, 0, 137, 137, 137, 137,
0, 0, 52, 0, 0, 52, 149, 149, 0, 149,
149, 149, 149, 0, 149, 149, 149, 49, 0, 52,
52, 0, 159, 0, 0, 0, 137, 137, 137, 137,
0, 0, 0, 159, 159, 159, 159, 0, 0, 0,
0, 0, 0, 137, 137, 0, 137, 137, 137, 137,
0, 137, 137, 137, 52, 0, 0, 0, 0, 0,
94, 0, 0, 159, 159, 159, 159, 0, 0, 0,
0, 94, 94, 94, 94, 0, 0, 0, 0, 0,
159, 159, 0, 159, 159, 159, 159, 0, 159, 159,
159, 98, 0, 0, 98, 0, 0, 98, 0, 0,
0, 94, 94, 94, 94, 0, 0, 0, 0, 0,
0, 98, 98, 0, 98, 0, 98, 0, 94, 94,
0, 94, 94, 94, 94, 0, 94, 94, 94, 194,
0, 0, 194, 0, 0, 194, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 98, 98, 0, 194,
194, 0, 194, 0, 194, 0, 0, 0, 0, 0,
0, 50, 50, 50, 50, 0, 115, 0, 0, 115,
0, 0, 115, 0, 0, 0, 0, 98, 0, 0,
0, 0, 0, 0, 194, 194, 115, 115, 0, 115,
0, 115, 0, 0, 0, 0, 0, 0, 49, 49,
49, 49, 0, 120, 0, 0, 120, 0, 0, 120,
0, 0, 0, 0, 0, 194, 0, 50, 50, 0,
0, 115, 115, 120, 120, 0, 120, 0, 120, 0,
0, 0, 0, 0, 0, 52, 52, 52, 52, 0,
91, 0, 0, 91, 0, 0, 91, 0, 0, 0,
0, 0, 115, 0, 49, 49, 0, 0, 120, 120,
91, 91, 0, 91, 0, 91, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 90, 0, 0,
90, 0, 0, 90, 0, 0, 0, 0, 0, 120,
0, 52, 52, 0, 0, 91, 91, 90, 90, 0,
90, 0, 90, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 181, 0, 98, 181, 0, 0,
0, 0, 0, 0, 0, 0, 91, 98, 98, 98,
98, 0, 90, 90, 181, 181, 0, 181, 0, 181,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 194, 0, 0, 98, 98, 98,
98, 0, 0, 90, 0, 194, 194, 194, 194, 181,
181, 0, 0, 0, 98, 98, 0, 98, 98, 98,
98, 0, 98, 98, 98, 0, 0, 0, 0, 0,
0, 115, 0, 0, 0, 194, 194, 194, 194, 0,
181, 0, 115, 115, 115, 115, 0, 0, 54, 0,
0, 54, 194, 194, 0, 194, 194, 194, 194, 0,
194, 194, 194, 0, 0, 54, 54, 0, 120, 0,
0, 0, 115, 115, 115, 115, 0, 0, 0, 120,
120, 120, 120, 0, 0, 55, 0, 0, 55, 115,
115, 0, 115, 115, 115, 115, 0, 115, 115, 115,
54, 0, 55, 55, 0, 91, 0, 0, 0, 120,
120, 120, 120, 0, 0, 0, 91, 91, 91, 91,
0, 0, 0, 0, 0, 0, 120, 120, 0, 120,
120, 120, 120, 0, 120, 120, 120, 55, 0, 0,
0, 0, 90, 0, 0, 0, 91, 91, 91, 91,
0, 0, 0, 90, 90, 90, 90, 0, 0, 0,
0, 0, 0, 91, 91, 0, 91, 91, 91, 91,
0, 91, 91, 91, 183, 0, 0, 183, 0, 181,
0, 0, 0, 90, 90, 90, 90, 0, 0, 0,
181, 181, 181, 181, 183, 183, 0, 183, 0, 183,
90, 90, 0, 90, 90, 90, 90, 0, 90, 90,
90, 184, 0, 0, 184, 0, 0, 0, 0, 0,
181, 181, 181, 181, 0, 0, 0, 0, 0, 183,
183, 184, 184, 0, 184, 0, 184, 181, 181, 0,
181, 181, 181, 181, 0, 181, 181, 181, 185, 0,
0, 185, 0, 0, 0, 0, 0, 0, 0, 0,
183, 0, 0, 0, 0, 0, 184, 184, 185, 185,
0, 185, 0, 185, 0, 0, 0, 0, 0, 0,
0, 54, 54, 54, 54, 76, 0, 0, 76, 0,
0, 76, 0, 0, 0, 0, 0, 184, 0, 0,
0, 0, 0, 185, 185, 76, 76, 0, 76, 0,
76, 0, 0, 0, 0, 0, 0, 0, 55, 55,
55, 55, 61, 0, 0, 61, 0, 0, 61, 0,
0, 0, 0, 0, 185, 0, 0, 54, 54, 0,
76, 76, 61, 61, 0, 61, 0, 61, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 62,
0, 0, 62, 0, 0, 62, 0, 0, 0, 0,
0, 76, 0, 0, 55, 55, 0, 61, 61, 62,
62, 0, 62, 0, 62, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 63, 0, 183,
63, 0, 0, 63, 0, 0, 0, 0, 61, 0,
183, 183, 183, 183, 62, 62, 0, 63, 63, 0,
63, 0, 63, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 184, 0, 0, 0,
183, 183, 183, 183, 0, 62, 0, 184, 184, 184,
184, 0, 63, 63, 0, 0, 0, 183, 183, 0,
183, 183, 183, 183, 0, 183, 183, 183, 0, 0,
0, 0, 0, 185, 0, 0, 0, 184, 184, 184,
184, 0, 0, 63, 185, 185, 185, 185, 0, 0,
0, 0, 0, 0, 184, 184, 0, 184, 184, 184,
184, 0, 184, 184, 184, 0, 0, 0, 0, 0,
76, 0, 0, 0, 185, 185, 185, 185, 0, 0,
0, 76, 76, 76, 76, 0, 0, 0, 0, 0,
0, 185, 185, 0, 185, 185, 185, 185, 0, 185,
185, 185, 0, 0, 0, 0, 0, 61, 0, 0,
0, 76, 76, 76, 76, 0, 0, 0, 61, 61,
61, 61, 0, 0, 0, 0, 0, 0, 76, 76,
0, 76, 76, 76, 76, 0, 0, 76, 76, 0,
0, 0, 0, 0, 62, 0, 0, 0, 61, 61,
61, 61, 0, 0, 0, 62, 62, 62, 62, 0,
0, 0, 0, 0, 0, 61, 61, 0, 61, 61,
61, 61, 0, 60, 61, 61, 60, 0, 0, 0,
0, 0, 63, 0, 0, 62, 62, 62, 62, 0,
60, 60, 0, 63, 63, 63, 63, 0, 0, 0,
0, 0, 62, 62, 0, 62, 62, 64, 0, 0,
64, 62, 62, 64, 0, 0, 0, 0, 0, 0,
0, 0, 0, 63, 63, 60, 63, 64, 64, 0,
64, 65, 64, 0, 65, 0, 0, 65, 0, 0,
63, 63, 0, 63, 63, 0, 0, 0, 0, 63,
63, 65, 65, 0, 65, 0, 65, 0, 0, 0,
0, 0, 64, 64, 0, 0, 0, 0, 0, 0,
0, 92, 0, 0, 92, 0, 0, 92, 0, 0,
0, 0, 0, 0, 0, 0, 65, 65, 0, 0,
0, 92, 92, 64, 92, 87, 92, 0, 87, 0,
0, 87, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 87, 87, 65, 87, 0,
87, 0, 0, 0, 0, 0, 92, 92, 0, 0,
0, 0, 0, 125, 0, 0, 125, 0, 0, 125,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
87, 87, 0, 125, 125, 0, 125, 92, 125, 0,
0, 192, 0, 0, 321, 0, 0, 302, 0, 0,
0, 67, 0, 0, 67, 0, 0, 67, 0, 0,
0, 87, 0, 0, 186, 0, 187, 0, 125, 125,
0, 67, 67, 0, 67, 68, 67, 0, 68, 0,
0, 68, 0, 0, 0, 0, 60, 60, 60, 60,
0, 0, 0, 0, 0, 68, 68, 191, 68, 125,
68, 0, 0, 0, 0, 0, 67, 67, 0, 0,
0, 0, 64, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 64, 64, 64, 64, 190, 0, 0,
68, 68, 0, 0, 0, 0, 65, 67, 0, 0,
0, 0, 60, 60, 0, 0, 0, 65, 65, 65,
65, 0, 0, 64, 64, 0, 0, 0, 0, 0,
0, 68, 0, 0, 0, 0, 0, 0, 0, 0,
64, 64, 0, 64, 64, 0, 92, 65, 65, 64,
64, 0, 0, 0, 0, 0, 0, 92, 92, 92,
92, 0, 0, 0, 65, 65, 0, 65, 65, 158,
87, 0, 158, 65, 65, 158, 0, 0, 0, 0,
0, 87, 87, 87, 87, 0, 0, 92, 92, 158,
158, 0, 158, 0, 158, 0, 0, 0, 0, 0,
0, 0, 0, 0, 92, 92, 0, 0, 125, 0,
0, 87, 87, 92, 92, 0, 0, 0, 0, 125,
125, 125, 125, 0, 158, 158, 0, 0, 87, 87,
0, 0, 0, 0, 0, 0, 181, 87, 87, 0,
0, 0, 0, 0, 0, 0, 67, 0, 0, 125,
125, 0, 0, 0, 0, 158, 0, 67, 67, 67,
67, 0, 0, 0, 0, 88, 125, 125, 88, 0,
68, 88, 0, 0, 0, 125, 125, 182, 183, 184,
185, 68, 68, 68, 68, 88, 88, 0, 88, 0,
88, 0, 0, 0, 188, 189, 0, 193, 194, 195,
196, 0, 197, 0, 67, 67, 0, 0, 0, 0,
0, 0, 0, 67, 67, 0, 0, 0, 0, 0,
88, 88, 0, 0, 0, 0, 0, 0, 68, 68,
0, 0, 0, 180, 0, 0, 180, 68, 68, 180,
0, 0, 123, 0, 0, 123, 0, 0, 123, 0,
0, 88, 0, 180, 180, 0, 180, 0, 180, 0,
0, 70, 123, 123, 70, 123, 0, 123, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 70, 70,
0, 70, 0, 70, 0, 0, 0, 0, 180, 180,
0, 0, 0, 0, 158, 0, 0, 123, 123, 0,
0, 0, 0, 0, 0, 158, 158, 158, 158, 77,
0, 0, 77, 70, 70, 77, 0, 0, 0, 180,
0, 0, 0, 0, 0, 0, 0, 0, 123, 77,
77, 0, 77, 0, 77, 158, 158, 158, 158, 0,
0, 0, 0, 0, 70, 0, 0, 0, 0, 0,
0, 0, 158, 158, 0, 158, 158, 158, 158, 0,
158, 0, 0, 0, 77, 77, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 182, 0,
88, 182, 0, 0, 182, 77, 0, 0, 0, 0,
0, 88, 88, 88, 88, 0, 0, 0, 182, 182,
0, 182, 0, 182, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 88, 88, 88, 88, 0, 0, 0, 0, 0,
0, 0, 0, 182, 182, 0, 0, 0, 88, 88,
0, 88, 88, 88, 88, 0, 88, 0, 180, 0,
0, 0, 0, 0, 0, 0, 0, 123, 0, 180,
180, 180, 180, 0, 182, 0, 0, 0, 123, 123,
123, 123, 0, 70, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 70, 70, 70, 70, 0, 180,
180, 180, 180, 0, 0, 0, 0, 0, 123, 123,
123, 123, 0, 0, 0, 0, 180, 180, 0, 180,
180, 180, 180, 0, 180, 123, 123, 0, 123, 123,
123, 123, 80, 123, 77, 80, 0, 0, 80, 0,
0, 70, 70, 0, 0, 77, 77, 77, 77, 0,
70, 70, 80, 80, 0, 80, 0, 80, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 77, 77, 77, 77, 0,
0, 0, 0, 0, 0, 0, 0, 80, 80, 0,
0, 0, 77, 77, 0, 77, 77, 77, 77, 0,
77, 0, 0, 0, 0, 0, 0, 0, 81, 0,
0, 81, 0, 182, 81, 0, 0, 0, 80, 0,
0, 0, 0, 0, 182, 182, 182, 182, 81, 81,
0, 81, 0, 81, 0, 192, 0, 0, 0, 0,
0, 302, 0, 0, 0, 78, 0, 0, 78, 0,
0, 78, 0, 0, 182, 182, 182, 182, 186, 0,
187, 0, 0, 81, 81, 78, 78, 0, 78, 0,
78, 182, 182, 0, 182, 182, 182, 182, 0, 182,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 191, 192, 0, 81, 0, 0, 0, 300, 0,
78, 78, 0, 0, 0, 79, 0, 0, 79, 0,
0, 79, 0, 0, 0, 186, 0, 187, 0, 0,
0, 190, 0, 0, 0, 79, 79, 0, 79, 0,
79, 78, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 191, 0,
0, 0, 0, 0, 0, 0, 0, 80, 0, 0,
79, 79, 0, 0, 0, 0, 0, 0, 80, 80,
80, 80, 0, 71, 0, 0, 0, 0, 190, 0,
75, 0, 0, 78, 0, 77, 0, 0, 0, 0,
0, 79, 0, 0, 0, 0, 0, 0, 80, 80,
80, 80, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 80, 80, 0, 80, 80,
80, 80, 0, 80, 0, 0, 0, 0, 0, 0,
0, 154, 0, 81, 0, 59, 0, 0, 59, 0,
0, 0, 0, 0, 81, 81, 81, 81, 0, 0,
0, 0, 59, 59, 0, 0, 0, 0, 0, 0,
181, 0, 0, 153, 0, 0, 72, 0, 72, 0,
78, 72, 0, 0, 81, 81, 81, 81, 0, 0,
0, 78, 78, 78, 78, 72, 72, 59, 72, 0,
72, 81, 81, 0, 81, 81, 81, 81, 0, 81,
0, 182, 183, 184, 185, 0, 0, 0, 0, 0,
0, 78, 78, 78, 78, 0, 0, 181, 188, 189,
72, 193, 194, 195, 196, 0, 197, 0, 78, 78,
79, 78, 78, 78, 78, 0, 78, 0, 0, 0,
0, 79, 79, 79, 79, 0, 73, 0, 0, 73,
0, 0, 58, 0, 0, 58, 0, 0, 182, 183,
184, 185, 0, 73, 73, 0, 73, 0, 73, 58,
58, 79, 79, 79, 79, 188, 189, 0, 193, 194,
195, 196, 0, 197, 0, 0, 0, 0, 79, 79,
0, 79, 79, 79, 79, 0, 79, 21, 73, 0,
22, 23, 24, 0, 58, 0, 25, 26, 27, 28,
29, 30, 31, 32, 0, 0, 0, 0, 0, 0,
0, 37, 38, 0, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
0, 56, 57, 58, 69, 0, 0, 69, 0, 59,
0, 60, 61, 62, 63, 64, 65, 66, 67, 68,
69, 69, 69, 70, 69, 0, 69, 0, 59, 59,
59, 59, 0, 0, 56, 0, 0, 56, 0, 0,
0, 57, 0, 0, 57, 0, 0, 0, 0, 0,
72, 56, 56, 0, 0, 0, 69, 69, 57, 57,
0, 72, 72, 72, 72, 0, 0, 0, 0, 0,
0, 53, 0, 0, 53, 0, 0, 0, 0, 0,
0, 0, 0, 0, 59, 59, 56, 69, 53, 53,
0, 0, 0, 57, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 72, 72,
0, 0, 0, 0, 0, 0, 0, 72, 72, 0,
0, 0, 0, 53, 0, 0, 0, 0, 73, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
73, 73, 73, 0, 0, 58, 58, 58, 58, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 73, 0, 0, 0,
0, 0, 0, 0, 0, 73, 73, 0, 0, 0,
0, 58, 58, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 69, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 69, 69, 69,
69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 56, 56, 56,
56, 0, 0, 0, 57, 57, 57, 57, 0, 0,
0, 0, 0, 0, 69, 69, 0, 0, 0, 160,
0, 0, 0, 69, 69, 168, 0, 0, 0, 0,
0, 0, 0, 0, 53, 53, 53, 53, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 56, 56, 0, 0, 0, 0, 0,
57, 57, 0, 216, 0, 219, 0, 221, 0, 223,
0, 0, 226, 0, 230, 0, 0, 0, 0, 0,
0, 0, 0, 0, 240, 0, 0, 0, 0, 0,
53, 53, 0, 0, 0, 0, 0, 0, 249, 0,
0, 0, 0, 254, 255, 256, 257, 258, 259, 260,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 268, 269, 270, 271,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 306, 308,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 324, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
343, 0, 346, 348, 0, 0, 0, 0, 0, 0,
0, 353, 0, 0, 0, 0, 356, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
366, 0, 0, 0, 0, 0, 0, 0, 0, 0,
372, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 216, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 399, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 405,
};
short yycheck[] = { 17,
40, 25, 61, 40, 40, 29, 38, 25, 125, 41,
40, 40, 44, 40, 40, 33, 34, 35, 36, 40,
257, 257, 96, 257, 44, 44, 58, 59, 44, 61,
44, 63, 56, 44, 40, 38, 40, 326, 327, 91,
329, 40, 40, 59, 38, 59, 70, 41, 40, 44,
44, 69, 70, 127, 128, 129, 130, 131, 132, 28,
41, 93, 94, 44, 58, 59, 41, 61, 257, 63,
94, 123, 96, 93, 93, 311, 257, 314, 91, 313,
44, 44, 93, 0, 59, 91, 110, 111, 112, 61,
41, 41, 124, 44, 258, 59, 59, 121, 93, 93,
94, 265, 41, 127, 128, 129, 130, 131, 132, 59,
123, 135, 136, 137, 138, 139, 33, 123, 310, 123,
59, 145, 41, 40, 123, 123, 43, 41, 45, 306,
124, 123, 142, 41, 144, 104, 300, 106, 107, 123,
59, 258, 59, 41, 308, 59, 44, 59, 265, 326,
327, 59, 329, 171, 257, 173, 180, 181, 182, 183,
184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
194, 195, 196, 197, 0, 41, 40, 44, 44, 304,
305, 306, 307, 300, 41, 41, 41, 44, 44, 44,
304, 308, 306, 307, 41, 330, 331, 44, 257, 324,
325, 326, 327, 40, 329, 40, 123, 33, 125, 126,
324, 325, 326, 327, 40, 329, 40, 43, 40, 45,
257, 257, 41, 41, 40, 44, 44, 257, 257, 41,
257, 263, 44, 59, 41, 41, 257, 44, 44, 263,
310, 40, 274, 275, 276, 277, 41, 41, 40, 44,
40, 40, 276, 40, 278, 40, 40, 331, 332, 40,
284, 38, 286, 59, 288, 40, 290, 40, 292, 263,
40, 311, 296, 305, 40, 311, 40, 314, 302, 40,
274, 275, 276, 277, 313, 311, 313, 40, 40, 321,
322, 40, 123, 274, 275, 276, 277, 123, 330, 331,
126, 304, 305, 306, 307, 40, 311, 331, 332, 40,
304, 305, 306, 307, 114, 44, 116, 94, 118, 91,
120, 324, 325, 326, 327, 40, 329, 321, 322, 41,
324, 325, 326, 327, 38, 359, 330, 331, 44, 256,
257, 258, 41, 260, 261, 262, 41, 124, 265, 266,
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
277, 44, 41, 41, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, 300, 301, 302, 303, 278, 279, 280,
94, 308, 309, 59, 311, 312, 313, 314, 315, 316,
317, 318, 319, 320, 41, 44, 323, 274, 275, 276,
277, 44, 44, 330, 331, 41, 123, 33, 91, 329,
124, 439, 41, 41, 40, 125, 41, 43, 41, 45,
256, 257, 41, 41, 260, 261, 262, 125, 41, 59,
266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
276, 277, 41, 41, 41, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, 297, 298, 299, 41, 301, 302, 303, 306, 307,
41, 125, 41, 309, 41, 311, 312, 313, 314, 315,
316, 317, 318, 319, 320, 41, 33, 323, 326, 327,
125, 329, 41, 40, 330, 331, 43, 123, 45, 41,
126, 41, 41, 306, 307, 41, 41, 317, 318, 319,
320, 59, 59, 59, 41, 59, 326, 304, 305, 306,
307, 324, 325, 326, 327, 41, 329, 41, 92, 12,
414, -1, 325, -1, 321, 322, -1, 324, 325, 326,
327, -1, 329, 71, 72, 73, 74, -1, -1, 77,
78, -1, -1, -1, -1, -1, -1, -1, 33, -1,
-1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
45, -1, 382, -1, -1, -1, 123, -1, -1, 126,
-1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
304, 305, 306, 307, 38, -1, 406, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 322, -1,
324, 325, 326, 327, -1, 329, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 257, -1, -1, 260, 261, 262, -1, -1, -1,
266, 267, 268, 269, 270, 271, 272, 273, 123, -1,
94, 126, -1, -1, -1, 281, 282, -1, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, 297, 298, 299, -1, 301, 302, 303, -1, -1,
124, -1, -1, 309, -1, 311, 312, 313, 314, 315,
316, 317, 318, 319, 320, -1, -1, 323, -1, -1,
-1, -1, -1, -1, 330, 331, -1, -1, -1, 256,
257, -1, -1, 260, 261, 262, -1, -1, -1, 266,
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
277, -1, -1, -1, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, -1, 301, 302, 303, -1, -1, -1,
-1, -1, 309, -1, 311, 312, 313, 314, 315, 316,
317, 318, 319, 320, -1, -1, 323, -1, -1, -1,
-1, 256, 257, 330, 331, 260, 261, 262, -1, -1,
-1, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, -1, -1, -1, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, -1, 301, 302, 303, 226,
-1, -1, -1, 230, 309, -1, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, -1, 33, 323, -1,
214, 215, 249, -1, 40, 330, 331, 43, -1, 45,
304, 305, 306, 307, -1, -1, -1, -1, -1, 233,
-1, -1, -1, -1, -1, -1, -1, 241, -1, -1,
324, 325, 326, 327, 248, 329, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 306,
-1, 308, -1, -1, 33, -1, -1, -1, -1, -1,
-1, 40, -1, -1, 43, -1, 45, 324, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 123, -1, -1,
126, -1, -1, -1, -1, -1, -1, -1, -1, 346,
-1, 348, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 329, -1, -1, -1, -1,
-1, 335, 336, -1, -1, 372, 340, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 33, -1, -1, -1,
-1, -1, -1, 40, 41, -1, 43, -1, 45, -1,
-1, -1, -1, -1, 123, -1, -1, 126, -1, -1,
-1, 38, -1, -1, 41, -1, -1, 44, -1, -1,
-1, -1, -1, 387, -1, -1, -1, -1, -1, -1,
394, -1, -1, -1, 61, -1, 63, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 422, -1,
-1, -1, -1, -1, -1, -1, -1, 94, -1, 433,
-1, 257, -1, -1, 260, 261, 262, -1, -1, 126,
266, 267, 268, 269, 270, 271, 272, 273, -1, -1,
-1, -1, -1, -1, -1, 281, 282, 124, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, 297, 298, 299, -1, 301, 302, 303, -1, -1,
-1, -1, -1, 309, -1, 311, 312, 313, 314, 315,
316, 317, 318, 319, 320, -1, -1, 323, 257, -1,
-1, 260, 261, 262, 330, 331, -1, 266, 267, 268,
269, 270, 271, 272, 273, -1, -1, -1, -1, -1,
-1, -1, 281, 282, -1, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
299, -1, 301, 302, 303, -1, -1, -1, -1, -1,
309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
319, 320, -1, -1, 323, 38, -1, -1, -1, -1,
257, 330, 331, 260, 261, 262, -1, -1, -1, 266,
267, 268, 269, 270, 271, 272, 273, -1, 61, -1,
63, -1, -1, -1, 281, 282, 263, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, -1, 301, 302, 303, -1, -1, -1,
-1, 94, 309, -1, 311, 312, 313, 314, 315, 316,
317, 318, 319, 320, -1, 33, 323, 304, 305, 306,
307, -1, 40, 330, 331, 43, -1, 45, -1, -1,
-1, 124, -1, -1, 321, 322, -1, 324, 325, 326,
327, -1, 329, 330, 331, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 33, -1, -1, -1, -1, -1, -1, 40,
41, -1, 43, -1, 45, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 126, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 33, -1, -1, -1, -1, -1,
-1, 40, 41, -1, 43, -1, 45, -1, -1, -1,
263, -1, -1, -1, -1, 126, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
38, -1, -1, -1, -1, -1, 44, -1, -1, -1,
-1, 304, 305, 306, 307, -1, -1, -1, -1, -1,
-1, -1, -1, 61, -1, 63, -1, -1, 321, 322,
-1, 324, 325, 326, 327, -1, 329, -1, 256, 257,
-1, -1, 260, 261, 262, -1, -1, 126, 266, 267,
268, 269, 270, 271, 272, 273, 94, -1, -1, -1,
-1, -1, -1, 281, 282, -1, 284, 285, 286, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
298, 299, -1, 301, 302, 303, 124, -1, -1, -1,
-1, 309, -1, 311, 312, 313, 314, 315, 316, 317,
318, 319, 320, -1, -1, 323, 257, -1, -1, 260,
261, 262, 330, 331, -1, 266, 267, 268, 269, 270,
271, 272, 273, -1, -1, -1, -1, -1, -1, -1,
281, 282, -1, 284, 285, 286, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, 297, 298, 299, -1,
301, 302, 303, -1, -1, -1, -1, -1, 309, -1,
311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
-1, -1, 323, -1, -1, 38, -1, -1, 257, 330,
331, 260, 261, 262, -1, -1, -1, 266, 267, 268,
269, 270, 271, 272, 273, 58, -1, -1, 61, -1,
63, -1, 281, 282, -1, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
299, -1, 301, 302, 303, 263, -1, -1, -1, -1,
309, 94, 311, 312, 313, 314, 315, 316, 317, 318,
319, 320, -1, 33, 323, -1, -1, -1, -1, -1,
40, 330, 331, 43, -1, 45, -1, -1, -1, -1,
-1, 124, -1, -1, -1, -1, 304, 305, 306, 307,
-1, 61, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 321, 322, -1, 324, 325, 326, 327,
-1, 329, 330, 331, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
33, -1, -1, -1, -1, -1, -1, 40, -1, -1,
43, -1, 45, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 126, -1, 61, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 33, -1, -1, -1, -1, -1, -1, 40,
-1, -1, 43, -1, 45, -1, -1, -1, -1, -1,
263, -1, -1, 126, -1, -1, -1, -1, -1, -1,
61, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 38, -1,
-1, 41, -1, -1, 44, -1, -1, -1, -1, -1,
-1, 304, 305, 306, 307, -1, -1, -1, -1, -1,
-1, 61, -1, 63, -1, -1, -1, -1, 321, 322,
-1, 324, 325, 326, 327, -1, 329, 257, -1, -1,
260, 261, 262, -1, -1, 126, 266, 267, 268, 269,
270, 271, 272, 273, 94, -1, -1, -1, -1, -1,
-1, 281, 282, -1, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
-1, 301, 302, 303, 124, -1, -1, -1, -1, 309,
-1, 311, 312, 313, 314, 315, 316, 317, 318, 319,
320, -1, -1, 323, 257, -1, -1, 260, 261, 262,
330, 331, -1, 266, 267, 268, 269, 270, 271, 272,
273, -1, -1, -1, -1, -1, -1, -1, 281, 282,
-1, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, 297, 298, 299, -1, 301, 302,
303, -1, -1, -1, -1, -1, 309, -1, 311, 312,
313, 314, 315, 316, 317, 318, 319, 320, -1, 38,
323, -1, -1, -1, -1, -1, 257, 330, 331, 260,
261, 262, -1, -1, -1, 266, 267, 268, 269, 270,
271, 272, 273, -1, 63, -1, -1, -1, -1, -1,
281, 282, -1, 284, 285, 286, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, 297, 298, 299, -1,
301, 302, 303, 263, -1, 94, -1, -1, 309, -1,
311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
-1, 33, 323, -1, -1, -1, -1, -1, 40, 330,
331, 43, -1, 45, -1, 124, -1, -1, -1, -1,
-1, -1, -1, -1, 304, 305, 306, 307, -1, 61,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 321, 322, -1, 324, 325, 326, 327, -1, 329,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
-1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
45, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 126, -1, 61, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
33, -1, -1, -1, -1, -1, -1, 40, -1, -1,
43, -1, 45, -1, 263, -1, -1, -1, -1, -1,
-1, 126, -1, -1, -1, -1, -1, -1, 61, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 38, -1, -1, 41,
-1, -1, 44, -1, -1, 304, 305, 306, 307, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 61,
-1, 63, 321, 322, -1, 324, 325, 326, 327, -1,
329, -1, -1, -1, -1, 257, -1, -1, 260, 261,
262, -1, -1, 126, 266, 267, 268, 269, 270, 271,
272, 273, 94, -1, -1, -1, -1, -1, -1, 281,
282, -1, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, 297, 298, 299, -1, 301,
302, 303, 124, -1, -1, -1, -1, 309, -1, 311,
312, 313, 314, 315, 316, 317, 318, 319, 320, -1,
-1, 323, 257, -1, -1, 260, 261, 262, 330, 331,
-1, 266, 267, 268, 269, 270, 271, 272, 273, -1,
-1, -1, -1, -1, -1, -1, 281, 282, -1, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, -1, 301, 302, 303, -1,
-1, -1, -1, -1, 309, -1, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, -1, -1, 323, -1,
-1, -1, -1, -1, 257, 330, 331, 260, 261, 262,
-1, -1, -1, 266, 267, 268, 269, 270, 271, 272,
273, -1, -1, -1, -1, -1, -1, -1, 281, 282,
-1, 284, 285, 286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, 297, 298, 299, -1, 301, 302,
303, 263, -1, -1, -1, -1, 309, -1, 311, 312,
313, 314, 315, 316, 317, 318, 319, 320, -1, 33,
323, -1, -1, -1, -1, -1, 40, 330, 331, 43,
-1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 304, 305, 306, 307, -1, 61, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 321,
322, -1, 324, 325, 326, 327, -1, 329, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 33, -1, -1, -1,
-1, -1, -1, 40, -1, -1, 43, -1, 45, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 126, -1, 61, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
-1, -1, -1, -1, -1, 40, 41, -1, 43, -1,
45, -1, -1, -1, -1, -1, -1, -1, -1, 126,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 33, -1, -1, -1, -1,
-1, -1, 40, 41, -1, 43, -1, 45, -1, -1,
-1, -1, -1, 257, -1, -1, 260, 261, 262, -1,
-1, 126, 266, 267, 268, 269, 270, 271, 272, 273,
-1, -1, -1, -1, -1, -1, -1, 281, 282, -1,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, 297, 298, 299, -1, 301, 302, 303,
-1, -1, -1, -1, -1, 309, -1, 311, 312, 313,
314, 315, 316, 317, 318, 319, 320, -1, -1, 323,
257, -1, -1, 260, 261, 262, 330, 331, 126, 266,
267, 268, 269, 270, 271, 272, 273, -1, -1, -1,
-1, -1, -1, -1, 281, 282, -1, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, -1, 301, 302, 303, -1, -1, -1,
-1, -1, 309, -1, 311, 312, 313, 314, 315, 316,
317, 318, 319, 320, -1, -1, 323, -1, -1, -1,
-1, -1, 257, 330, 331, 260, 261, 262, -1, -1,
-1, 266, 267, 268, 269, 270, 271, 272, 273, -1,
-1, -1, -1, -1, -1, -1, 281, 282, -1, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, -1, 301, 302, 303, -1,
-1, -1, -1, -1, 309, -1, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, -1, -1, 323, 257,
-1, -1, 260, 261, 262, 330, 331, -1, 266, 267,
268, 269, 270, 271, 272, 273, -1, -1, -1, -1,
-1, -1, -1, 281, 282, -1, 284, 285, 286, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
298, 299, -1, 301, 302, 303, -1, -1, -1, -1,
-1, 309, -1, 311, 312, 313, 314, 315, 316, 317,
318, 319, 320, -1, 213, 323, -1, 33, -1, -1,
-1, -1, 330, 331, 40, 41, 225, 43, -1, 45,
-1, -1, -1, -1, -1, 234, 235, -1, -1, -1,
-1, -1, -1, 242, 243, 244, 245, -1, 247, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 33, -1, -1, -1, -1, -1,
-1, 40, 41, -1, 43, -1, 45, -1, -1, -1,
-1, -1, -1, -1, 303, -1, -1, -1, -1, -1,
126, -1, -1, 312, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 322, -1, -1, -1, -1, -1, -1,
-1, 330, -1, -1, -1, -1, -1, -1, 337, 338,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 33, -1, -1, -1,
-1, -1, -1, 40, 41, -1, 43, -1, 45, -1,
369, -1, -1, -1, 373, -1, -1, 126, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
389, -1, -1, -1, -1, -1, 395, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 411, -1, -1, -1, -1, -1, -1, 418,
-1, -1, -1, 33, -1, -1, -1, -1, -1, -1,
40, 430, -1, 43, -1, 45, -1, -1, -1, -1,
-1, 257, -1, -1, 260, 261, 262, -1, -1, 126,
266, 267, 268, 269, 270, 271, 272, 273, -1, -1,
-1, -1, -1, -1, -1, 281, 282, -1, 284, 285,
286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
296, 297, 298, 299, -1, 301, 302, 303, -1, -1,
-1, -1, -1, 309, -1, 311, 312, 313, 314, 315,
316, 317, 318, 319, 320, -1, -1, 323, 257, -1,
-1, 260, 261, 262, 330, 331, 126, 266, 267, 268,
269, 270, 271, 272, 273, -1, -1, -1, -1, -1,
-1, -1, 281, 282, -1, 284, 285, 286, 287, 288,
289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
299, -1, 301, 302, 303, -1, -1, -1, -1, -1,
309, -1, 311, 312, 313, 314, 315, 316, 317, 318,
319, 320, -1, -1, 323, -1, -1, -1, -1, -1,
257, 330, 331, 260, 261, 262, -1, -1, -1, 266,
267, 268, 269, 270, 271, 272, 273, -1, -1, -1,
-1, -1, -1, -1, 281, 282, -1, 284, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
297, 298, 299, -1, 301, 302, 303, -1, -1, -1,
-1, -1, 309, -1, 311, 312, 313, 314, 315, 316,
317, 318, 319, 320, -1, -1, 323, 257, -1, -1,
260, 261, 262, 330, 331, -1, 266, 267, 268, 269,
270, 271, 272, 273, -1, -1, -1, -1, -1, -1,
-1, 281, 282, -1, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
-1, 301, 302, 303, -1, -1, -1, 41, -1, 309,
44, 311, 312, 313, 314, 315, 316, 317, 318, 319,
320, -1, 33, 323, 58, 59, -1, 61, -1, 40,
330, 331, 43, -1, 45, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 33,
-1, -1, -1, -1, -1, -1, 40, -1, -1, 43,
-1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 126, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 33, -1, -1, -1, -1, -1, -1, 40, -1,
-1, 43, 41, 45, -1, 44, -1, -1, -1, -1,
-1, -1, 126, -1, -1, -1, -1, -1, -1, 58,
59, -1, 61, -1, 63, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 93, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
274, 275, 276, 277, -1, -1, 257, -1, -1, 260,
261, 262, -1, -1, 126, 266, 267, 268, 269, 270,
271, 272, 273, -1, -1, -1, -1, -1, -1, -1,
281, 282, -1, 284, 285, 286, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, 297, 298, 299, -1,
301, 302, 303, -1, -1, -1, 330, 331, 309, -1,
311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
-1, -1, 323, 257, -1, -1, 260, 261, 262, 330,
331, -1, 266, 267, 268, 269, 270, 271, 272, 273,
-1, -1, -1, -1, -1, -1, -1, 281, 282, -1,
284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, 297, 298, 299, -1, 301, 302, 303,
-1, -1, -1, -1, -1, 309, -1, 311, 312, 313,
314, 315, 316, 317, 318, 319, 320, -1, -1, 323,
-1, -1, -1, -1, -1, 257, 330, 331, 260, 261,
262, -1, -1, -1, 266, 267, 268, 269, 270, 271,
272, 273, -1, -1, -1, 274, 275, 276, 277, 281,
282, -1, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, 297, 298, 299, -1, 301,
302, 303, 38, -1, -1, 41, -1, 309, 44, 311,
312, 313, 314, 315, 316, 317, 318, 319, 320, -1,
-1, 323, 58, 59, -1, 61, -1, 63, 330, 331,
-1, 330, 331, -1, -1, -1, -1, -1, -1, 38,
-1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 93, 94, 58,
59, -1, 61, -1, 63, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 38, -1, -1, 41,
-1, -1, 44, -1, -1, -1, -1, -1, 124, -1,
-1, -1, -1, -1, 93, 94, 58, 59, -1, 61,
-1, 63, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 38, -1, -1, 41, -1, -1, 44,
-1, -1, -1, -1, -1, 124, -1, -1, -1, -1,
-1, 93, 94, 58, 59, -1, 61, -1, 63, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
38, -1, -1, 41, -1, -1, 44, -1, -1, -1,
-1, -1, 124, -1, -1, -1, -1, -1, 93, 94,
58, 59, -1, 61, -1, 63, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 38, -1, -1,
41, -1, -1, 44, -1, -1, -1, -1, -1, 124,
-1, -1, -1, -1, -1, 93, 94, 58, 59, -1,
61, -1, 63, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 38, -1, 263, 41, -1,
-1, 44, -1, -1, -1, -1, 124, -1, 274, 275,
276, 277, 93, 94, -1, 58, 59, -1, 61, -1,
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 263, -1, -1, -1, 304, 305,
306, 307, -1, 124, -1, 274, 275, 276, 277, -1,
93, 94, -1, -1, -1, 321, 322, -1, 324, 325,
326, 327, -1, 329, 330, 331, -1, -1, -1, -1,
-1, 263, -1, -1, -1, 304, 305, 306, 307, -1,
-1, 124, 274, 275, 276, 277, -1, -1, 41, -1,
-1, 44, 321, 322, -1, 324, 325, 326, 327, -1,
329, 330, 331, -1, -1, 58, 59, -1, 263, -1,
-1, -1, 304, 305, 306, 307, -1, -1, -1, 274,
275, 276, 277, -1, -1, 41, -1, -1, 44, 321,
322, -1, 324, 325, 326, 327, -1, 329, 330, 331,
93, -1, 58, 59, -1, 263, -1, -1, -1, 304,
305, 306, 307, -1, -1, -1, 274, 275, 276, 277,
-1, -1, 41, -1, -1, 44, 321, 322, -1, 324,
325, 326, 327, -1, 329, 330, 331, 93, -1, 58,
59, -1, 263, -1, -1, -1, 304, 305, 306, 307,
-1, -1, -1, 274, 275, 276, 277, -1, -1, -1,
-1, -1, -1, 321, 322, -1, 324, 325, 326, 327,
-1, 329, 330, 331, 93, -1, -1, -1, -1, -1,
263, -1, -1, 304, 305, 306, 307, -1, -1, -1,
-1, 274, 275, 276, 277, -1, -1, -1, -1, -1,
321, 322, -1, 324, 325, 326, 327, -1, 329, 330,
331, 38, -1, -1, 41, -1, -1, 44, -1, -1,
-1, 304, 305, 306, 307, -1, -1, -1, -1, -1,
-1, 58, 59, -1, 61, -1, 63, -1, 321, 322,
-1, 324, 325, 326, 327, -1, 329, 330, 331, 38,
-1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 93, 94, -1, 58,
59, -1, 61, -1, 63, -1, -1, -1, -1, -1,
-1, 274, 275, 276, 277, -1, 38, -1, -1, 41,
-1, -1, 44, -1, -1, -1, -1, 124, -1, -1,
-1, -1, -1, -1, 93, 94, 58, 59, -1, 61,
-1, 63, -1, -1, -1, -1, -1, -1, 274, 275,
276, 277, -1, 38, -1, -1, 41, -1, -1, 44,
-1, -1, -1, -1, -1, 124, -1, 330, 331, -1,
-1, 93, 94, 58, 59, -1, 61, -1, 63, -1,
-1, -1, -1, -1, -1, 274, 275, 276, 277, -1,
38, -1, -1, 41, -1, -1, 44, -1, -1, -1,
-1, -1, 124, -1, 330, 331, -1, -1, 93, 94,
58, 59, -1, 61, -1, 63, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 38, -1, -1,
41, -1, -1, 44, -1, -1, -1, -1, -1, 124,
-1, 330, 331, -1, -1, 93, 94, 58, 59, -1,
61, -1, 63, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 38, -1, 263, 41, -1, -1,
-1, -1, -1, -1, -1, -1, 124, 274, 275, 276,
277, -1, 93, 94, 58, 59, -1, 61, -1, 63,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 263, -1, -1, 304, 305, 306,
307, -1, -1, 124, -1, 274, 275, 276, 277, 93,
94, -1, -1, -1, 321, 322, -1, 324, 325, 326,
327, -1, 329, 330, 331, -1, -1, -1, -1, -1,
-1, 263, -1, -1, -1, 304, 305, 306, 307, -1,
124, -1, 274, 275, 276, 277, -1, -1, 41, -1,
-1, 44, 321, 322, -1, 324, 325, 326, 327, -1,
329, 330, 331, -1, -1, 58, 59, -1, 263, -1,
-1, -1, 304, 305, 306, 307, -1, -1, -1, 274,
275, 276, 277, -1, -1, 41, -1, -1, 44, 321,
322, -1, 324, 325, 326, 327, -1, 329, 330, 331,
93, -1, 58, 59, -1, 263, -1, -1, -1, 304,
305, 306, 307, -1, -1, -1, 274, 275, 276, 277,
-1, -1, -1, -1, -1, -1, 321, 322, -1, 324,
325, 326, 327, -1, 329, 330, 331, 93, -1, -1,
-1, -1, 263, -1, -1, -1, 304, 305, 306, 307,
-1, -1, -1, 274, 275, 276, 277, -1, -1, -1,
-1, -1, -1, 321, 322, -1, 324, 325, 326, 327,
-1, 329, 330, 331, 38, -1, -1, 41, -1, 263,
-1, -1, -1, 304, 305, 306, 307, -1, -1, -1,
274, 275, 276, 277, 58, 59, -1, 61, -1, 63,
321, 322, -1, 324, 325, 326, 327, -1, 329, 330,
331, 38, -1, -1, 41, -1, -1, -1, -1, -1,
304, 305, 306, 307, -1, -1, -1, -1, -1, 93,
94, 58, 59, -1, 61, -1, 63, 321, 322, -1,
324, 325, 326, 327, -1, 329, 330, 331, 38, -1,
-1, 41, -1, -1, -1, -1, -1, -1, -1, -1,
124, -1, -1, -1, -1, -1, 93, 94, 58, 59,
-1, 61, -1, 63, -1, -1, -1, -1, -1, -1,
-1, 274, 275, 276, 277, 38, -1, -1, 41, -1,
-1, 44, -1, -1, -1, -1, -1, 124, -1, -1,
-1, -1, -1, 93, 94, 58, 59, -1, 61, -1,
63, -1, -1, -1, -1, -1, -1, -1, 274, 275,
276, 277, 38, -1, -1, 41, -1, -1, 44, -1,
-1, -1, -1, -1, 124, -1, -1, 330, 331, -1,
93, 94, 58, 59, -1, 61, -1, 63, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 38,
-1, -1, 41, -1, -1, 44, -1, -1, -1, -1,
-1, 124, -1, -1, 330, 331, -1, 93, 94, 58,
59, -1, 61, -1, 63, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 38, -1, 263,
41, -1, -1, 44, -1, -1, -1, -1, 124, -1,
274, 275, 276, 277, 93, 94, -1, 58, 59, -1,
61, -1, 63, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 263, -1, -1, -1,
304, 305, 306, 307, -1, 124, -1, 274, 275, 276,
277, -1, 93, 94, -1, -1, -1, 321, 322, -1,
324, 325, 326, 327, -1, 329, 330, 331, -1, -1,
-1, -1, -1, 263, -1, -1, -1, 304, 305, 306,
307, -1, -1, 124, 274, 275, 276, 277, -1, -1,
-1, -1, -1, -1, 321, 322, -1, 324, 325, 326,
327, -1, 329, 330, 331, -1, -1, -1, -1, -1,
263, -1, -1, -1, 304, 305, 306, 307, -1, -1,
-1, 274, 275, 276, 277, -1, -1, -1, -1, -1,
-1, 321, 322, -1, 324, 325, 326, 327, -1, 329,
330, 331, -1, -1, -1, -1, -1, 263, -1, -1,
-1, 304, 305, 306, 307, -1, -1, -1, 274, 275,
276, 277, -1, -1, -1, -1, -1, -1, 321, 322,
-1, 324, 325, 326, 327, -1, -1, 330, 331, -1,
-1, -1, -1, -1, 263, -1, -1, -1, 304, 305,
306, 307, -1, -1, -1, 274, 275, 276, 277, -1,
-1, -1, -1, -1, -1, 321, 322, -1, 324, 325,
326, 327, -1, 41, 330, 331, 44, -1, -1, -1,
-1, -1, 263, -1, -1, 304, 305, 306, 307, -1,
58, 59, -1, 274, 275, 276, 277, -1, -1, -1,
-1, -1, 321, 322, -1, 324, 325, 38, -1, -1,
41, 330, 331, 44, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 304, 305, 93, 307, 58, 59, -1,
61, 38, 63, -1, 41, -1, -1, 44, -1, -1,
321, 322, -1, 324, 325, -1, -1, -1, -1, 330,
331, 58, 59, -1, 61, -1, 63, -1, -1, -1,
-1, -1, 93, 94, -1, -1, -1, -1, -1, -1,
-1, 38, -1, -1, 41, -1, -1, 44, -1, -1,
-1, -1, -1, -1, -1, -1, 93, 94, -1, -1,
-1, 58, 59, 124, 61, 38, 63, -1, 41, -1,
-1, 44, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 58, 59, 124, 61, -1,
63, -1, -1, -1, -1, -1, 93, 94, -1, -1,
-1, -1, -1, 38, -1, -1, 41, -1, -1, 44,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
93, 94, -1, 58, 59, -1, 61, 124, 63, -1,
-1, 38, -1, -1, 41, -1, -1, 44, -1, -1,
-1, 38, -1, -1, 41, -1, -1, 44, -1, -1,
-1, 124, -1, -1, 61, -1, 63, -1, 93, 94,
-1, 58, 59, -1, 61, 38, 63, -1, 41, -1,
-1, 44, -1, -1, -1, -1, 274, 275, 276, 277,
-1, -1, -1, -1, -1, 58, 59, 94, 61, 124,
63, -1, -1, -1, -1, -1, 93, 94, -1, -1,
-1, -1, 263, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 274, 275, 276, 277, 124, -1, -1,
93, 94, -1, -1, -1, -1, 263, 124, -1, -1,
-1, -1, 330, 331, -1, -1, -1, 274, 275, 276,
277, -1, -1, 304, 305, -1, -1, -1, -1, -1,
-1, 124, -1, -1, -1, -1, -1, -1, -1, -1,
321, 322, -1, 324, 325, -1, 263, 304, 305, 330,
331, -1, -1, -1, -1, -1, -1, 274, 275, 276,
277, -1, -1, -1, 321, 322, -1, 324, 325, 38,
263, -1, 41, 330, 331, 44, -1, -1, -1, -1,
-1, 274, 275, 276, 277, -1, -1, 304, 305, 58,
59, -1, 61, -1, 63, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 321, 322, -1, -1, 263, -1,
-1, 304, 305, 330, 331, -1, -1, -1, -1, 274,
275, 276, 277, -1, 93, 94, -1, -1, 321, 322,
-1, -1, -1, -1, -1, -1, 263, 330, 331, -1,
-1, -1, -1, -1, -1, -1, 263, -1, -1, 304,
305, -1, -1, -1, -1, 124, -1, 274, 275, 276,
277, -1, -1, -1, -1, 38, 321, 322, 41, -1,
263, 44, -1, -1, -1, 330, 331, 304, 305, 306,
307, 274, 275, 276, 277, 58, 59, -1, 61, -1,
63, -1, -1, -1, 321, 322, -1, 324, 325, 326,
327, -1, 329, -1, 321, 322, -1, -1, -1, -1,
-1, -1, -1, 330, 331, -1, -1, -1, -1, -1,
93, 94, -1, -1, -1, -1, -1, -1, 321, 322,
-1, -1, -1, 38, -1, -1, 41, 330, 331, 44,
-1, -1, 38, -1, -1, 41, -1, -1, 44, -1,
-1, 124, -1, 58, 59, -1, 61, -1, 63, -1,
-1, 41, 58, 59, 44, 61, -1, 63, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 58, 59,
-1, 61, -1, 63, -1, -1, -1, -1, 93, 94,
-1, -1, -1, -1, 263, -1, -1, 93, 94, -1,
-1, -1, -1, -1, -1, 274, 275, 276, 277, 38,
-1, -1, 41, 93, 94, 44, -1, -1, -1, 124,
-1, -1, -1, -1, -1, -1, -1, -1, 124, 58,
59, -1, 61, -1, 63, 304, 305, 306, 307, -1,
-1, -1, -1, -1, 124, -1, -1, -1, -1, -1,
-1, -1, 321, 322, -1, 324, 325, 326, 327, -1,
329, -1, -1, -1, 93, 94, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 38, -1,
263, 41, -1, -1, 44, 124, -1, -1, -1, -1,
-1, 274, 275, 276, 277, -1, -1, -1, 58, 59,
-1, 61, -1, 63, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 304, 305, 306, 307, -1, -1, -1, -1, -1,
-1, -1, -1, 93, 94, -1, -1, -1, 321, 322,
-1, 324, 325, 326, 327, -1, 329, -1, 263, -1,
-1, -1, -1, -1, -1, -1, -1, 263, -1, 274,
275, 276, 277, -1, 124, -1, -1, -1, 274, 275,
276, 277, -1, 263, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 274, 275, 276, 277, -1, 304,
305, 306, 307, -1, -1, -1, -1, -1, 304, 305,
306, 307, -1, -1, -1, -1, 321, 322, -1, 324,
325, 326, 327, -1, 329, 321, 322, -1, 324, 325,
326, 327, 38, 329, 263, 41, -1, -1, 44, -1,
-1, 321, 322, -1, -1, 274, 275, 276, 277, -1,
330, 331, 58, 59, -1, 61, -1, 63, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 304, 305, 306, 307, -1,
-1, -1, -1, -1, -1, -1, -1, 93, 94, -1,
-1, -1, 321, 322, -1, 324, 325, 326, 327, -1,
329, -1, -1, -1, -1, -1, -1, -1, 38, -1,
-1, 41, -1, 263, 44, -1, -1, -1, 124, -1,
-1, -1, -1, -1, 274, 275, 276, 277, 58, 59,
-1, 61, -1, 63, -1, 38, -1, -1, -1, -1,
-1, 44, -1, -1, -1, 38, -1, -1, 41, -1,
-1, 44, -1, -1, 304, 305, 306, 307, 61, -1,
63, -1, -1, 93, 94, 58, 59, -1, 61, -1,
63, 321, 322, -1, 324, 325, 326, 327, -1, 329,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 94, 38, -1, 124, -1, -1, -1, 44, -1,
93, 94, -1, -1, -1, 38, -1, -1, 41, -1,
-1, 44, -1, -1, -1, 61, -1, 63, -1, -1,
-1, 124, -1, -1, -1, 58, 59, -1, 61, -1,
63, 124, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 94, -1,
-1, -1, -1, -1, -1, -1, -1, 263, -1, -1,
93, 94, -1, -1, -1, -1, -1, -1, 274, 275,
276, 277, -1, 33, -1, -1, -1, -1, 124, -1,
40, -1, -1, 43, -1, 45, -1, -1, -1, -1,
-1, 124, -1, -1, -1, -1, -1, -1, 304, 305,
306, 307, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 321, 322, -1, 324, 325,
326, 327, -1, 329, -1, -1, -1, -1, -1, -1,
-1, 91, -1, 263, -1, 41, -1, -1, 44, -1,
-1, -1, -1, -1, 274, 275, 276, 277, -1, -1,
-1, -1, 58, 59, -1, -1, -1, -1, -1, -1,
263, -1, -1, 123, -1, -1, 126, -1, 41, -1,
263, 44, -1, -1, 304, 305, 306, 307, -1, -1,
-1, 274, 275, 276, 277, 58, 59, 93, 61, -1,
63, 321, 322, -1, 324, 325, 326, 327, -1, 329,
-1, 304, 305, 306, 307, -1, -1, -1, -1, -1,
-1, 304, 305, 306, 307, -1, -1, 263, 321, 322,
93, 324, 325, 326, 327, -1, 329, -1, 321, 322,
263, 324, 325, 326, 327, -1, 329, -1, -1, -1,
-1, 274, 275, 276, 277, -1, 41, -1, -1, 44,
-1, -1, 41, -1, -1, 44, -1, -1, 304, 305,
306, 307, -1, 58, 59, -1, 61, -1, 63, 58,
59, 304, 305, 306, 307, 321, 322, -1, 324, 325,
326, 327, -1, 329, -1, -1, -1, -1, 321, 322,
-1, 324, 325, 326, 327, -1, 329, 257, 93, -1,
260, 261, 262, -1, 93, -1, 266, 267, 268, 269,
270, 271, 272, 273, -1, -1, -1, -1, -1, -1,
-1, 281, 282, -1, 284, 285, 286, 287, 288, 289,
290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
-1, 301, 302, 303, 41, -1, -1, 44, -1, 309,
-1, 311, 312, 313, 314, 315, 316, 317, 318, 319,
320, 58, 59, 323, 61, -1, 63, -1, 274, 275,
276, 277, -1, -1, 41, -1, -1, 44, -1, -1,
-1, 41, -1, -1, 44, -1, -1, -1, -1, -1,
263, 58, 59, -1, -1, -1, 93, 94, 58, 59,
-1, 274, 275, 276, 277, -1, -1, -1, -1, -1,
-1, 41, -1, -1, 44, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 330, 331, 93, 124, 58, 59,
-1, -1, -1, 93, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 321, 322,
-1, -1, -1, -1, -1, -1, -1, 330, 331, -1,
-1, -1, -1, 93, -1, -1, -1, -1, 263, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 274,
275, 276, 277, -1, -1, 274, 275, 276, 277, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 321, -1, -1, -1,
-1, -1, -1, -1, -1, 330, 331, -1, -1, -1,
-1, 330, 331, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 263, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 274, 275, 276,
277, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 274, 275, 276,
277, -1, -1, -1, 274, 275, 276, 277, -1, -1,
-1, -1, -1, -1, 321, 322, -1, -1, -1, 69,
-1, -1, -1, 330, 331, 75, -1, -1, -1, -1,
-1, -1, -1, -1, 274, 275, 276, 277, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 330, 331, -1, -1, -1, -1, -1,
330, 331, -1, 113, -1, 115, -1, 117, -1, 119,
-1, -1, 122, -1, 124, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 134, -1, -1, -1, -1, -1,
330, 331, -1, -1, -1, -1, -1, -1, 148, -1,
-1, -1, -1, 153, 154, 155, 156, 157, 158, 159,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 176, 177, 178, 179,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 208, 209,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 227, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
250, -1, 252, 253, -1, -1, -1, -1, -1, -1,
-1, 261, -1, -1, -1, -1, 266, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
300, -1, -1, -1, -1, -1, -1, -1, -1, -1,
310, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 325, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 344, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 355,
};
#define YYFINAL 1
#ifndef YYDEBUG
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 331
#if YYDEBUG
char *yyname[] = {
"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
"'!'",0,0,0,0,"'&'",0,"'('","')'",0,"'+'","','","'-'",0,0,0,0,0,0,0,0,0,0,0,0,
"':'","';'",0,"'='",0,"'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
"'{'","'|'","'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"WORD","LABEL","APPEND","OPEN",
"SSELECT","LOOPEX","DOTDOT","USING","FORMAT","DO","SHIFT","PUSH","POP",
"LVALFUN","CHOOSE","FMIN1","FUNC12","WHILE","UNTIL","IF","UNLESS","ELSE",
"ELSIF","CONTINUE","SPLIT","FLIST","FOR","FILOP","FILOP2","FILOP3","FILOP4",
"FILOP22","FILOP25","FUNC0","FUNC1","FUNC2","FUNC2x","FUNC3","FUNC4","FUNC5",
"HSHFUN","HSHFUN3","FLIST2","SUB","FILETEST","LOCAL","DELETE","RELOP","EQOP",
"MULOP","ADDOP","PACKAGE","AMPER","FORMLIST","REG","ARYLEN","ARY","HSH","STAR",
"SUBST","PATTERN","RSTRING","TRANS","LISTOP","OROR","ANDAND","UNIOP","LS","RS",
"MATCH","NMATCH","UMINUS","POW","INC","DEC",
};
char *yyrule[] = {
"$accept : prog",
"$$1 :",
"prog : $$1 lineseq",
"compblock : block CONTINUE block",
"compblock : block else",
"else :",
"else : ELSE block",
"else : ELSIF '(' expr ')' compblock",
"block : '{' remember lineseq '}'",
"remember :",
"lineseq :",
"lineseq : lineseq line",
"line : decl",
"line : label cond",
"line : loop",
"line : label ';'",
"line : label sideff ';'",
"sideff : error",
"sideff : expr",
"sideff : expr IF expr",
"sideff : expr UNLESS expr",
"sideff : expr WHILE expr",
"sideff : expr UNTIL expr",
"cond : IF '(' expr ')' compblock",
"cond : UNLESS '(' expr ')' compblock",
"cond : IF block compblock",
"cond : UNLESS block compblock",
"loop : label WHILE '(' texpr ')' compblock",
"loop : label UNTIL '(' expr ')' compblock",
"loop : label WHILE block compblock",
"loop : label UNTIL block compblock",
"loop : label FOR REG '(' expr crp compblock",
"loop : label FOR '(' expr crp compblock",
"loop : label FOR '(' nexpr ';' texpr ';' nexpr ')' block",
"loop : label compblock",
"nexpr :",
"nexpr : sideff",
"texpr :",
"texpr : expr",
"label :",
"label : LABEL",
"decl : format",
"decl : subrout",
"decl : package",
"format : FORMAT WORD '=' FORMLIST",
"format : FORMAT '=' FORMLIST",
"subrout : SUB WORD block",
"package : PACKAGE WORD ';'",
"cexpr : ',' expr",
"expr : expr ',' sexpr",
"expr : sexpr",
"csexpr : ',' sexpr",
"sexpr : sexpr '=' sexpr",
"sexpr : sexpr POW '=' sexpr",
"sexpr : sexpr MULOP '=' sexpr",
"sexpr : sexpr ADDOP '=' sexpr",
"sexpr : sexpr LS '=' sexpr",
"sexpr : sexpr RS '=' sexpr",
"sexpr : sexpr '&' '=' sexpr",
"sexpr : sexpr '^' '=' sexpr",
"sexpr : sexpr '|' '=' sexpr",
"sexpr : sexpr POW sexpr",
"sexpr : sexpr MULOP sexpr",
"sexpr : sexpr ADDOP sexpr",
"sexpr : sexpr LS sexpr",
"sexpr : sexpr RS sexpr",
"sexpr : sexpr RELOP sexpr",
"sexpr : sexpr EQOP sexpr",
"sexpr : sexpr '&' sexpr",
"sexpr : sexpr '^' sexpr",
"sexpr : sexpr '|' sexpr",
"sexpr : sexpr DOTDOT sexpr",
"sexpr : sexpr ANDAND sexpr",
"sexpr : sexpr OROR sexpr",
"sexpr : sexpr '?' sexpr ':' sexpr",
"sexpr : sexpr MATCH sexpr",
"sexpr : sexpr NMATCH sexpr",
"sexpr : term",
"term : '-' term",
"term : '+' term",
"term : '!' term",
"term : '~' term",
"term : term INC",
"term : term DEC",
"term : INC term",
"term : DEC term",
"term : FILETEST WORD",
"term : FILETEST sexpr",
"term : FILETEST",
"term : LOCAL '(' expr crp",
"term : '(' expr crp",
"term : '(' ')'",
"term : DO sexpr",
"term : DO block",
"term : REG",
"term : STAR",
"term : REG '[' expr ']'",
"term : HSH",
"term : ARY",
"term : REG '{' expr ';' '}'",
"term : '(' expr crp '[' expr ']'",
"term : '(' ')' '[' expr ']'",
"term : ARY '[' expr ']'",
"term : ARY '{' expr ';' '}'",
"term : DELETE REG '{' expr ';' '}'",
"term : DELETE '(' REG '{' expr ';' '}' ')'",
"term : ARYLEN",
"term : RSTRING",
"term : PATTERN",
"term : SUBST",
"term : TRANS",
"term : DO WORD '(' expr crp",
"term : AMPER WORD '(' expr crp",
"term : DO WORD '(' ')'",
"term : AMPER WORD '(' ')'",
"term : AMPER WORD",
"term : DO REG '(' expr crp",
"term : AMPER REG '(' expr crp",
"term : DO REG '(' ')'",
"term : AMPER REG '(' ')'",
"term : AMPER REG",
"term : LOOPEX",
"term : LOOPEX WORD",
"term : UNIOP",
"term : UNIOP block",
"term : UNIOP sexpr",
"term : SSELECT",
"term : SSELECT WORD",
"term : SSELECT '(' handle ')'",
"term : SSELECT '(' sexpr csexpr csexpr csexpr ')'",
"term : OPEN WORD",
"term : OPEN '(' WORD ')'",
"term : OPEN '(' handle cexpr ')'",
"term : FILOP '(' handle ')'",
"term : FILOP WORD",
"term : FILOP REG",
"term : FILOP '(' ')'",
"term : FILOP",
"term : FILOP2 '(' handle cexpr ')'",
"term : FILOP3 '(' handle csexpr cexpr ')'",
"term : FILOP22 '(' handle ',' handle ')'",
"term : FILOP4 '(' handle csexpr csexpr cexpr ')'",
"term : FILOP25 '(' handle ',' handle csexpr csexpr cexpr ')'",
"term : PUSH '(' aryword ',' expr crp",
"term : POP aryword",
"term : POP '(' aryword ')'",
"term : SHIFT aryword",
"term : SHIFT '(' aryword ')'",
"term : SHIFT",
"term : SPLIT",
"term : SPLIT '(' sexpr csexpr csexpr ')'",
"term : SPLIT '(' sexpr csexpr ')'",
"term : SPLIT '(' sexpr ')'",
"term : FLIST2 '(' sexpr cexpr ')'",
"term : FLIST '(' expr crp",
"term : FMIN1 '(' sexpr ')'",
"term : FMIN1 '(' sexpr cexpr ')'",
"term : LVALFUN sexpr",
"term : LVALFUN",
"term : FUNC0",
"term : FUNC0 '(' ')'",
"term : FUNC1 '(' ')'",
"term : FUNC1 '(' expr ')'",
"term : FUNC2 '(' sexpr cexpr ')'",
"term : FUNC2x '(' sexpr csexpr ')'",
"term : FUNC2x '(' sexpr csexpr cexpr ')'",
"term : FUNC12 '(' sexpr ')'",
"term : FUNC12 '(' sexpr cexpr ')'",
"term : FUNC3 '(' sexpr csexpr cexpr ')'",
"term : FUNC4 '(' sexpr csexpr csexpr cexpr ')'",
"term : FUNC5 '(' sexpr csexpr csexpr csexpr cexpr ')'",
"term : CHOOSE '(' sexpr csexpr csexpr ')'",
"term : CHOOSE '(' sexpr csexpr csexpr csexpr ')'",
"term : CHOOSE '(' sexpr csexpr csexpr csexpr csexpr ')'",
"term : CHOOSE '(' sexpr csexpr csexpr csexpr csexpr csexpr ')'",
"term : HSHFUN '(' hshword ')'",
"term : HSHFUN hshword",
"term : HSHFUN3 '(' hshword csexpr cexpr ')'",
"term : bareword",
"term : listop",
"listop : LISTOP",
"listop : LISTOP expr",
"listop : LISTOP WORD",
"listop : LISTOP WORD expr",
"listop : LISTOP REG expr",
"listop : LISTOP block expr",
"handle : WORD",
"handle : sexpr",
"aryword : WORD",
"aryword : ARY",
"hshword : WORD",
"hshword : HSH",
"crp : ',' ')'",
"crp : ')'",
"bareword : WORD",
};
#endif
#define yyclearin (yychar=(-1))
#define yyerrok (yyerrflag=0)
#ifdef YYSTACKSIZE
#ifndef YYMAXDEPTH
#define YYMAXDEPTH YYSTACKSIZE
#endif
#else
#ifdef YYMAXDEPTH
#define YYSTACKSIZE YYMAXDEPTH
#else
#define YYSTACKSIZE 500
#define YYMAXDEPTH 500
#endif
#endif
int yydebug;
int yynerrs;
int yyerrflag;
int yychar;
short *yyssp;
YYSTYPE *yyvsp;
YYSTYPE yyval;
YYSTYPE yylval;
short yyss[YYSTACKSIZE];
YYSTYPE yyvs[YYSTACKSIZE];
#define yystacksize YYSTACKSIZE
#line 895 ":perly.y"
/* PROGRAM */
#line 2000 "y.tab.c"
#define YYABORT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
int
yyparse()
{
register int yym, yyn, yystate;
#if YYDEBUG
register char *yys;
extern char *getenv();
if (yys = getenv("YYDEBUG"))
{
yyn = *yys;
if (yyn >= '0' && yyn <= '9')
yydebug = yyn - '0';
}
#endif
yynerrs = 0;
yyerrflag = 0;
yychar = (-1);
yyssp = yyss;
yyvsp = yyvs;
*yyssp = yystate = 0;
yyloop:
if (yyn = yydefred[yystate]) goto yyreduce;
if (yychar < 0)
{
if ((yychar = yylex()) < 0) yychar = 0;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
fprintf(perldbg, "yydebug: state %d, reading %d (%s)\n", yystate,
yychar, yys);
}
#endif
}
if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
{
#if YYDEBUG
if (yydebug)
fprintf(perldbg, "yydebug: state %d, shifting to state %d\n",
yystate, yytable[yyn]);
#endif
if (yyssp >= yyss + yystacksize - 1)
{
goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
*++yyvsp = yylval;
yychar = (-1);
if (yyerrflag > 0) --yyerrflag;
goto yyloop;
}
if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
{
yyn = yytable[yyn];
goto yyreduce;
}
if (yyerrflag) goto yyinrecovery;
#ifdef lint
goto yynewerror;
#endif
yynewerror:
yyerror("syntax error");
#ifdef lint
goto yyerrlab;
#endif
yyerrlab:
++yynerrs;
yyinrecovery:
if (yyerrflag < 3)
{
yyerrflag = 3;
for (;;)
{
if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
{
#if YYDEBUG
if (yydebug)
fprintf(perldbg, "yydebug: state %d, error recovery shifting\
to state %d\n", *yyssp, yytable[yyn]);
#endif
if (yyssp >= yyss + yystacksize - 1)
{
goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
*++yyvsp = yylval;
goto yyloop;
}
else
{
#if YYDEBUG
if (yydebug)
fprintf(perldbg, "yydebug: error recovery discarding state %d\n",
*yyssp);
#endif
if (yyssp <= yyss) goto yyabort;
--yyssp;
--yyvsp;
}
}
}
else
{
if (yychar == 0) goto yyabort;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
fprintf(perldbg, "yydebug: state %d, error recovery discards token %d (%s)\n",
yystate, yychar, yys);
}
#endif
yychar = (-1);
goto yyloop;
}
yyreduce:
#if YYDEBUG
if (yydebug)
fprintf(perldbg, "yydebug: state %d, reducing by rule %d (%s)\n",
yystate, yyn, yyrule[yyn]);
#endif
yym = yylen[yyn];
yyval = yyvsp[1-yym];
switch (yyn)
{
case 1:
#line 109 ":perly.y"
{
#if defined(YYDEBUG) && defined(DEBUGGING)
yydebug = (debug & 1);
#endif
expectterm = 2;
}
break;
case 2:
#line 116 ":perly.y"
{ if (in_eval)
eval_root = block_head(yyvsp[0].cmdval);
else
main_root = block_head(yyvsp[0].cmdval); }
break;
case 3:
#line 123 ":perly.y"
{ yyval.compval.comp_true = yyvsp[-2].cmdval; yyval.compval.comp_alt = yyvsp[0].cmdval; }
break;
case 4:
#line 125 ":perly.y"
{ yyval.compval.comp_true = yyvsp[-1].cmdval; yyval.compval.comp_alt = yyvsp[0].cmdval; }
break;
case 5:
#line 129 ":perly.y"
{ yyval.cmdval = Nullcmd; }
break;
case 6:
#line 131 ":perly.y"
{ yyval.cmdval = yyvsp[0].cmdval; }
break;
case 7:
#line 133 ":perly.y"
{ cmdline = yyvsp[-4].ival;
yyval.cmdval = make_ccmd(C_ELSIF,1,yyvsp[-2].arg,yyvsp[0].compval); }
break;
case 8:
#line 138 ":perly.y"
{ yyval.cmdval = block_head(yyvsp[-1].cmdval);
if (cmdline > (line_t)yyvsp[-3].ival)
cmdline = yyvsp[-3].ival;
if (savestack->ary_fill > yyvsp[-2].ival)
restorelist(yyvsp[-2].ival);
expectterm = 2; }
break;
case 9:
#line 147 ":perly.y"
{ yyval.ival = savestack->ary_fill; }
break;
case 10:
#line 151 ":perly.y"
{ yyval.cmdval = Nullcmd; }
break;
case 11:
#line 153 ":perly.y"
{ yyval.cmdval = append_line(yyvsp[-1].cmdval,yyvsp[0].cmdval); }
break;
case 12:
#line 157 ":perly.y"
{ yyval.cmdval = Nullcmd; }
break;
case 13:
#line 159 ":perly.y"
{ yyval.cmdval = add_label(yyvsp[-1].cval,yyvsp[0].cmdval); }
break;
case 15:
#line 162 ":perly.y"
{ if (yyvsp[-1].cval != Nullch) {
yyval.cmdval = add_label(yyvsp[-1].cval, make_acmd(C_EXPR, Nullstab,
Nullarg, Nullarg) );
}
else {
yyval.cmdval = Nullcmd;
cmdline = NOLINE;
}
expectterm = 2; }
break;
case 16:
#line 172 ":perly.y"
{ yyval.cmdval = add_label(yyvsp[-2].cval,yyvsp[-1].cmdval);
expectterm = 2; }
break;
case 17:
#line 177 ":perly.y"
{ yyval.cmdval = Nullcmd; }
break;
case 18:
#line 179 ":perly.y"
{ yyval.cmdval = make_acmd(C_EXPR, Nullstab, yyvsp[0].arg, Nullarg); }
break;
case 19:
#line 181 ":perly.y"
{ yyval.cmdval = addcond(
make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg), yyvsp[0].arg); }
break;
case 20:
#line 184 ":perly.y"
{ yyval.cmdval = addcond(invert(
make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg)), yyvsp[0].arg); }
break;
case 21:
#line 187 ":perly.y"
{ yyval.cmdval = addloop(
make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg), yyvsp[0].arg); }
break;
case 22:
#line 190 ":perly.y"
{ yyval.cmdval = addloop(invert(
make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg)), yyvsp[0].arg); }
break;
case 23:
#line 195 ":perly.y"
{ cmdline = yyvsp[-4].ival;
yyval.cmdval = make_icmd(C_IF,yyvsp[-2].arg,yyvsp[0].compval); }
break;
case 24:
#line 198 ":perly.y"
{ cmdline = yyvsp[-4].ival;
yyval.cmdval = invert(make_icmd(C_IF,yyvsp[-2].arg,yyvsp[0].compval)); }
break;
case 25:
#line 201 ":perly.y"
{ cmdline = yyvsp[-2].ival;
yyval.cmdval = make_icmd(C_IF,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval); }
break;
case 26:
#line 204 ":perly.y"
{ cmdline = yyvsp[-2].ival;
yyval.cmdval = invert(make_icmd(C_IF,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval)); }
break;
case 27:
#line 209 ":perly.y"
{ cmdline = yyvsp[-4].ival;
yyval.cmdval = wopt(add_label(yyvsp[-5].cval,
make_ccmd(C_WHILE,1,yyvsp[-2].arg,yyvsp[0].compval) )); }
break;
case 28:
#line 213 ":perly.y"
{ cmdline = yyvsp[-4].ival;
yyval.cmdval = wopt(add_label(yyvsp[-5].cval,
invert(make_ccmd(C_WHILE,1,yyvsp[-2].arg,yyvsp[0].compval)) )); }
break;
case 29:
#line 217 ":perly.y"
{ cmdline = yyvsp[-2].ival;
yyval.cmdval = wopt(add_label(yyvsp[-3].cval,
make_ccmd(C_WHILE, 1, cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval) )); }
break;
case 30:
#line 221 ":perly.y"
{ cmdline = yyvsp[-2].ival;
yyval.cmdval = wopt(add_label(yyvsp[-3].cval,
invert(make_ccmd(C_WHILE,1,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval)) )); }
break;
case 31:
#line 225 ":perly.y"
{ cmdline = yyvsp[-5].ival;
/*
* The following gobbledygook catches EXPRs that
* aren't explicit array refs and translates
* foreach VAR (EXPR) {
* into
* @ary = EXPR;
* foreach VAR (@ary) {
* where @ary is a hidden array made by genstab().
* (Note that @ary may become a local array if
* it is determined that it might be called
* recursively. See cmd_tosave().)
*/
if (yyvsp[-2].arg->arg_type != O_ARRAY) {
scrstab = aadd(genstab());
yyval.cmdval = append_line(
make_acmd(C_EXPR, Nullstab,
l(make_op(O_ASSIGN,2,
listish(make_op(O_ARRAY, 1,
stab2arg(A_STAB,scrstab),
Nullarg,Nullarg )),
listish(make_list(yyvsp[-2].arg)),
Nullarg)),
Nullarg),
wopt(over(yyvsp[-4].stabval,add_label(yyvsp[-6].cval,
make_ccmd(C_WHILE, 0,
make_op(O_ARRAY, 1,
stab2arg(A_STAB,scrstab),
Nullarg,Nullarg ),
yyvsp[0].compval)))));
yyval.cmdval->c_line = yyvsp[-5].ival;
yyval.cmdval->c_head->c_line = yyvsp[-5].ival;
}
else {
yyval.cmdval = wopt(over(yyvsp[-4].stabval,add_label(yyvsp[-6].cval,
make_ccmd(C_WHILE,1,yyvsp[-2].arg,yyvsp[0].compval) )));
}
}
break;
case 32:
#line 264 ":perly.y"
{ cmdline = yyvsp[-4].ival;
if (yyvsp[-2].arg->arg_type != O_ARRAY) {
scrstab = aadd(genstab());
yyval.cmdval = append_line(
make_acmd(C_EXPR, Nullstab,
l(make_op(O_ASSIGN,2,
listish(make_op(O_ARRAY, 1,
stab2arg(A_STAB,scrstab),
Nullarg,Nullarg )),
listish(make_list(yyvsp[-2].arg)),
Nullarg)),
Nullarg),
wopt(over(defstab,add_label(yyvsp[-5].cval,
make_ccmd(C_WHILE, 0,
make_op(O_ARRAY, 1,
stab2arg(A_STAB,scrstab),
Nullarg,Nullarg ),
yyvsp[0].compval)))));
yyval.cmdval->c_line = yyvsp[-4].ival;
yyval.cmdval->c_head->c_line = yyvsp[-4].ival;
}
else { /* lisp, anyone? */
yyval.cmdval = wopt(over(defstab,add_label(yyvsp[-5].cval,
make_ccmd(C_WHILE,1,yyvsp[-2].arg,yyvsp[0].compval) )));
}
}
break;
case 33:
#line 292 ":perly.y"
{ yyval.compval.comp_true = yyvsp[0].cmdval;
yyval.compval.comp_alt = yyvsp[-2].cmdval;
cmdline = yyvsp[-8].ival;
yyval.cmdval = append_line(yyvsp[-6].cmdval,wopt(add_label(yyvsp[-9].cval,
make_ccmd(C_WHILE,1,yyvsp[-4].arg,yyval.compval) ))); }
break;
case 34:
#line 298 ":perly.y"
{ yyval.cmdval = add_label(yyvsp[-1].cval,make_ccmd(C_BLOCK,1,Nullarg,yyvsp[0].compval)); }
break;
case 35:
#line 302 ":perly.y"
{ yyval.cmdval = Nullcmd; }
break;
case 37:
#line 307 ":perly.y"
{ (void)scanstr("1",SCAN_DEF); yyval.arg = yylval.arg; }
break;
case 39:
#line 312 ":perly.y"
{ yyval.cval = Nullch; }
break;
case 41:
#line 317 ":perly.y"
{ yyval.ival = 0; }
break;
case 42:
#line 319 ":perly.y"
{ yyval.ival = 0; }
break;
case 43:
#line 321 ":perly.y"
{ yyval.ival = 0; }
break;
case 44:
#line 325 ":perly.y"
{ if (strEQ(yyvsp[-2].cval,"stdout"))
make_form(stabent("STDOUT",TRUE),yyvsp[0].formval);
else if (strEQ(yyvsp[-2].cval,"stderr"))
make_form(stabent("STDERR",TRUE),yyvsp[0].formval);
else
make_form(stabent(yyvsp[-2].cval,TRUE),yyvsp[0].formval);
Safefree(yyvsp[-2].cval); yyvsp[-2].cval = Nullch; }
break;
case 45:
#line 333 ":perly.y"
{ make_form(stabent("STDOUT",TRUE),yyvsp[0].formval); }
break;
case 46:
#line 337 ":perly.y"
{ make_sub(yyvsp[-1].cval,yyvsp[0].cmdval);
cmdline = NOLINE;
if (savestack->ary_fill > yyvsp[-2].ival)
restorelist(yyvsp[-2].ival); }
break;
case 47:
#line 344 ":perly.y"
{ char tmpbuf[256];
STAB *tmpstab;
savehptr(&curstash);
saveitem(curstname);
str_set(curstname,yyvsp[-1].cval);
sprintf(tmpbuf,"'_%s",yyvsp[-1].cval);
tmpstab = stabent(tmpbuf,TRUE);
if (!stab_xhash(tmpstab))
stab_xhash(tmpstab) = hnew(0);
curstash = stab_xhash(tmpstab);
if (!curstash->tbl_name)
curstash->tbl_name = savestr(yyvsp[-1].cval);
curstash->tbl_coeffsize = 0;
Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch;
cmdline = NOLINE;
expectterm = 2;
}
break;
case 48:
#line 365 ":perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 49:
#line 369 ":perly.y"
{ yyval.arg = make_op(O_COMMA, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 51:
#line 374 ":perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 52:
#line 378 ":perly.y"
{ yyvsp[-2].arg = listish(yyvsp[-2].arg);
if (yyvsp[-2].arg->arg_type == O_ASSIGN && yyvsp[-2].arg->arg_len == 1)
yyvsp[-2].arg->arg_type = O_ITEM; /* a local() */
if (yyvsp[-2].arg->arg_type == O_LIST)
yyvsp[0].arg = listish(yyvsp[0].arg);
yyval.arg = l(make_op(O_ASSIGN, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg)); }
break;
case 53:
#line 385 ":perly.y"
{ yyval.arg = l(make_op(O_POW, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 54:
#line 387 ":perly.y"
{ yyval.arg = l(make_op(yyvsp[-2].ival, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 55:
#line 389 ":perly.y"
{ yyval.arg = rcatmaybe(l(make_op(yyvsp[-2].ival, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)));}
break;
case 56:
#line 391 ":perly.y"
{ yyval.arg = l(make_op(O_LEFT_SHIFT, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 57:
#line 393 ":perly.y"
{ yyval.arg = l(make_op(O_RIGHT_SHIFT, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 58:
#line 395 ":perly.y"
{ yyval.arg = l(make_op(O_BIT_AND, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 59:
#line 397 ":perly.y"
{ yyval.arg = l(make_op(O_XOR, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 60:
#line 399 ":perly.y"
{ yyval.arg = l(make_op(O_BIT_OR, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
break;
case 61:
#line 403 ":perly.y"
{ yyval.arg = make_op(O_POW, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 62:
#line 405 ":perly.y"
{ if (yyvsp[-1].ival == O_REPEAT)
yyvsp[-2].arg = listish(yyvsp[-2].arg);
yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg);
if (yyvsp[-1].ival == O_REPEAT) {
if (yyval.arg[1].arg_type != A_EXPR ||
yyval.arg[1].arg_ptr.arg_arg->arg_type != O_LIST)
yyval.arg[1].arg_flags &= ~AF_ARYOK;
} }
break;
case 63:
#line 414 ":perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 64:
#line 416 ":perly.y"
{ yyval.arg = make_op(O_LEFT_SHIFT, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 65:
#line 418 ":perly.y"
{ yyval.arg = make_op(O_RIGHT_SHIFT, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 66:
#line 420 ":perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 67:
#line 422 ":perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 68:
#line 424 ":perly.y"
{ yyval.arg = make_op(O_BIT_AND, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 69:
#line 426 ":perly.y"
{ yyval.arg = make_op(O_XOR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 70:
#line 428 ":perly.y"
{ yyval.arg = make_op(O_BIT_OR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 71:
#line 430 ":perly.y"
{ arg4 = Nullarg;
yyval.arg = make_op(O_F_OR_R, 4, yyvsp[-2].arg, yyvsp[0].arg, Nullarg);
yyval.arg[0].arg_flags |= yyvsp[-1].ival; }
break;
case 72:
#line 434 ":perly.y"
{ yyval.arg = make_op(O_AND, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 73:
#line 436 ":perly.y"
{ yyval.arg = make_op(O_OR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
break;
case 74:
#line 438 ":perly.y"
{ yyval.arg = make_op(O_COND_EXPR, 3, yyvsp[-4].arg, yyvsp[-2].arg, yyvsp[0].arg); }
break;
case 75:
#line 440 ":perly.y"
{ yyval.arg = mod_match(O_MATCH, yyvsp[-2].arg, yyvsp[0].arg); }
break;
case 76:
#line 442 ":perly.y"
{ yyval.arg = mod_match(O_NMATCH, yyvsp[-2].arg, yyvsp[0].arg); }
break;
case 77:
#line 444 ":perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 78:
#line 448 ":perly.y"
{ yyval.arg = make_op(O_NEGATE, 1, yyvsp[0].arg, Nullarg, Nullarg); }
break;
case 79:
#line 450 ":perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 80:
#line 452 ":perly.y"
{ yyval.arg = make_op(O_NOT, 1, yyvsp[0].arg, Nullarg, Nullarg); }
break;
case 81:
#line 454 ":perly.y"
{ yyval.arg = make_op(O_COMPLEMENT, 1, yyvsp[0].arg, Nullarg, Nullarg);}
break;
case 82:
#line 456 ":perly.y"
{ yyval.arg = addflags(1, AF_POST|AF_UP,
l(make_op(O_ITEM,1,yyvsp[-1].arg,Nullarg,Nullarg))); }
break;
case 83:
#line 459 ":perly.y"
{ yyval.arg = addflags(1, AF_POST,
l(make_op(O_ITEM,1,yyvsp[-1].arg,Nullarg,Nullarg))); }
break;
case 84:
#line 462 ":perly.y"
{ yyval.arg = addflags(1, AF_PRE|AF_UP,
l(make_op(O_ITEM,1,yyvsp[0].arg,Nullarg,Nullarg))); }
break;
case 85:
#line 465 ":perly.y"
{ yyval.arg = addflags(1, AF_PRE,
l(make_op(O_ITEM,1,yyvsp[0].arg,Nullarg,Nullarg))); }
break;
case 86:
#line 468 ":perly.y"
{ opargs[yyvsp[-1].ival] = 0; /* force it special */
yyval.arg = make_op(yyvsp[-1].ival, 1,
stab2arg(A_STAB,stabent(yyvsp[0].cval,TRUE)),
Nullarg, Nullarg);
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch;
}
break;
case 87:
#line 475 ":perly.y"
{ opargs[yyvsp[-1].ival] = 1;
yyval.arg = make_op(yyvsp[-1].ival, 1, yyvsp[0].arg, Nullarg, Nullarg); }
break;
case 88:
#line 478 ":perly.y"
{ opargs[yyvsp[0].ival] = (yyvsp[0].ival != O_FTTTY);
yyval.arg = make_op(yyvsp[0].ival, 1,
stab2arg(A_STAB,
yyvsp[0].ival == O_FTTTY?stabent("STDIN",TRUE):defstab),
Nullarg, Nullarg); }
break;
case 89:
#line 484 ":perly.y"
{ yyval.arg = l(localize(make_op(O_ASSIGN, 1,
localize(listish(make_list(yyvsp[-1].arg))),
Nullarg,Nullarg))); }
break;
case 90:
#line 488 ":perly.y"
{ yyval.arg = make_list(yyvsp[-1].arg); }
break;
case 91:
#line 490 ":perly.y"
{ yyval.arg = make_list(Nullarg); }
break;
case 92:
#line 492 ":perly.y"
{ yyval.arg = make_op(O_DOFILE,2,yyvsp[0].arg,Nullarg,Nullarg);
allstabs = TRUE;}
break;
case 93:
#line 495 ":perly.y"
{ yyval.arg = cmd_to_arg(yyvsp[0].cmdval); }
break;
case 94:
#line 497 ":perly.y"
{ yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); }
break;
case 95:
#line 499 ":perly.y"
{ yyval.arg = stab2arg(A_STAR,yyvsp[0].stabval); }
break;
case 96:
#line 501 ":perly.y"
{ yyval.arg = make_op(O_AELEM, 2,
stab2arg(A_STAB,aadd(yyvsp[-3].stabval)), yyvsp[-1].arg, Nullarg); }
break;
case 97:
#line 504 ":perly.y"
{ yyval.arg = make_op(O_HASH, 1,
stab2arg(A_STAB,yyvsp[0].stabval),
Nullarg, Nullarg); }
break;
case 98:
#line 508 ":perly.y"
{ yyval.arg = make_op(O_ARRAY, 1,
stab2arg(A_STAB,yyvsp[0].stabval),
Nullarg, Nullarg); }
break;
case 99:
#line 512 ":perly.y"
{ yyval.arg = make_op(O_HELEM, 2,
stab2arg(A_STAB,hadd(yyvsp[-4].stabval)),
jmaybe(yyvsp[-2].arg),
Nullarg);
expectterm = FALSE; }
break;
case 100:
#line 518 ":perly.y"
{ yyval.arg = make_op(O_LSLICE, 3,
Nullarg,
listish(make_list(yyvsp[-1].arg)),
listish(make_list(yyvsp[-4].arg))); }
break;
case 101:
#line 523 ":perly.y"
{ yyval.arg = make_op(O_LSLICE, 3,
Nullarg,
listish(make_list(yyvsp[-1].arg)),
Nullarg); }
break;
case 102:
#line 528 ":perly.y"
{ yyval.arg = make_op(O_ASLICE, 2,
stab2arg(A_STAB,aadd(yyvsp[-3].stabval)),
listish(make_list(yyvsp[-1].arg)),
Nullarg); }
break;
case 103:
#line 533 ":perly.y"
{ yyval.arg = make_op(O_HSLICE, 2,
stab2arg(A_STAB,hadd(yyvsp[-4].stabval)),
listish(make_list(yyvsp[-2].arg)),
Nullarg);
expectterm = FALSE; }
break;
case 104:
#line 539 ":perly.y"
{ yyval.arg = make_op(O_DELETE, 2,
stab2arg(A_STAB,hadd(yyvsp[-4].stabval)),
jmaybe(yyvsp[-2].arg),
Nullarg);
expectterm = FALSE; }
break;
case 105:
#line 545 ":perly.y"
{ yyval.arg = make_op(O_DELETE, 2,
stab2arg(A_STAB,hadd(yyvsp[-5].stabval)),
jmaybe(yyvsp[-3].arg),
Nullarg);
expectterm = FALSE; }
break;
case 106:
#line 551 ":perly.y"
{ yyval.arg = stab2arg(A_ARYLEN,yyvsp[0].stabval); }
break;
case 107:
#line 553 ":perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 108:
#line 555 ":perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 109:
#line 557 ":perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 110:
#line 559 ":perly.y"
{ yyval.arg = yyvsp[0].arg; }
break;
case 111:
#line 561 ":perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_WORD,stabent(yyvsp[-3].cval,MULTI)),
make_list(yyvsp[-1].arg),
Nullarg); Safefree(yyvsp[-3].cval); yyvsp[-3].cval = Nullch;
yyval.arg->arg_flags |= AF_DEPR; }
break;
case 112:
#line 567 ":perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_WORD,stabent(yyvsp[-3].cval,MULTI)),
make_list(yyvsp[-1].arg),
Nullarg); Safefree(yyvsp[-3].cval); yyvsp[-3].cval = Nullch; }
break;
case 113:
#line 572 ":perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_WORD,stabent(yyvsp[-2].cval,MULTI)),
make_list(Nullarg),
Nullarg);
Safefree(yyvsp[-2].cval); yyvsp[-2].cval = Nullch;
yyval.arg->arg_flags |= AF_DEPR; }
break;
case 114:
#line 579 ":perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_WORD,stabent(yyvsp[-2].cval,MULTI)),
make_list(Nullarg),
Nullarg);
Safefree(yyvsp[-2].cval); yyvsp[-2].cval = Nullch;
}
break;
case 115:
#line 586 ":perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_WORD,stabent(yyvsp[0].cval,MULTI)),
Nullarg,
Nullarg);
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch;
}
break;
case 116:
#line 593 ":perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_STAB,yyvsp[-3].stabval),
make_list(yyvsp[-1].arg),
Nullarg);
yyval.arg->arg_flags |= AF_DEPR; }
break;
case 117:
#line 599 ":perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_STAB,yyvsp[-3].stabval),
make_list(yyvsp[-1].arg),
Nullarg); }
break;
case 118:
#line 604 ":perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_STAB,yyvsp[-2].stabval),
make_list(Nullarg),
Nullarg);
yyval.arg->arg_flags |= AF_DEPR; }
break;
case 119:
#line 610 ":perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_STAB,yyvsp[-2].stabval),
make_list(Nullarg),
Nullarg); }
break;
case 120:
#line 615 ":perly.y"
{ yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
stab2arg(A_STAB,yyvsp[0].stabval),
Nullarg,
Nullarg); }
break;
case 121:
#line 620 ":perly.y"
{ yyval.arg = make_op(yyvsp[0].ival,0,Nullarg,Nullarg,Nullarg); }
break;
case 122:
#line 622 ":perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival,1,cval_to_arg(yyvsp[0].cval),
Nullarg,Nullarg); }
break;
case 123:
#line 625 ":perly.y"
{ yyval.arg = make_op(yyvsp[0].ival,0,Nullarg,Nullarg,Nullarg); }
break;
case 124:
#line 627 ":perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival,1,cmd_to_arg(yyvsp[0].cmdval),Nullarg,Nullarg); }
break;
case 125:
#line 629 ":perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival,1,yyvsp[0].arg,Nullarg,Nullarg); }
break;
case 126:
#line 631 ":perly.y"
{ yyval.arg = make_op(O_SELECT, 0, Nullarg, Nullarg, Nullarg);}
break;
case 127:
#line 633 ":perly.y"
{ yyval.arg = make_op(O_SELECT, 1,
stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
Nullarg,
Nullarg);
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; }
break;
case 128:
#line 639 ":perly.y"
{ yyval.arg = make_op(O_SELECT, 1, yyvsp[-1].arg, Nullarg, Nullarg); }
break;
case 129:
#line 641 ":perly.y"
{ arg4 = yyvsp[-1].arg;
yyval.arg = make_op(O_SSELECT, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); }
break;
case 130:
#line 644 ":perly.y"
{ yyval.arg = make_op(O_OPEN, 2,
stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
stab2arg(A_STAB,stabent(yyvsp[0].cval,TRUE)),
Nullarg);
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch;
}
break;
case 131:
#line 651 ":perly.y"
{ yyval.arg = make_op(O_OPEN, 2,
stab2arg(A_WORD,stabent(yyvsp[-1].cval,TRUE)),
stab2arg(A_STAB,stabent(yyvsp[-1].cval,TRUE)),
Nullarg);
Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch;
}
break;
case 132:
#line 658 ":perly.y"
{ yyval.arg = make_op(O_OPEN, 2,
yyvsp[-2].arg,
yyvsp[-1].arg, Nullarg); }
break;
case 133:
#line 662 ":perly.y"
{ yyval.arg = make_op(yyvsp[-3].ival, 1,
yyvsp[-1].arg,
Nullarg, Nullarg); }
break;
case 134:
#line 666 ":perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival, 1,
stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
Nullarg, Nullarg);
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; }
break;
case 135:
#line 671 ":perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival, 1,
stab2arg(A_STAB,yyvsp[0].stabval),
Nullarg, Nullarg); }
break;
case 136:
#line 675 ":perly.y"
{ yyval.arg = make_op(yyvsp[-2].ival, 1,
stab2arg(A_WORD,Nullstab),
Nullarg, Nullarg); }
break;
case 137:
#line 679 ":perly.y"
{ yyval.arg = make_op(yyvsp[0].ival, 0,
Nullarg, Nullarg, Nullarg); }
break;
case 138:
#line 682 ":perly.y"
{ yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg); }
break;
case 139:
#line 684 ":perly.y"
{ yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, make_list(yyvsp[-1].arg)); }
break;
case 140:
#line 686 ":perly.y"
{ yyval.arg = make_op(yyvsp[-5].ival, 2, yyvsp[-3].arg, yyvsp[-1].arg, Nullarg); }
break;
case 141:
#line 688 ":perly.y"
{ arg4 = yyvsp[-1].arg; yyval.arg = make_op(yyvsp[-6].ival, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); }
break;
case 142:
#line 690 ":perly.y"
{ arg4 = yyvsp[-2].arg; arg5 = yyvsp[-1].arg;
yyval.arg = make_op(yyvsp[-8].ival, 5, yyvsp[-6].arg, yyvsp[-4].arg, yyvsp[-3].arg); }
break;
case 143:
#line 693 ":perly.y"
{ yyval.arg = make_op(yyvsp[-5].ival, 2,
yyvsp[-3].arg,
make_list(yyvsp[-1].arg),
Nullarg); }
break;
case 144:
#line 698 ":perly.y"
{ yyval.arg = make_op(O_POP, 1, yyvsp[0].arg, Nullarg, Nullarg); }
break;
case 145:
#line 700 ":perly.y"
{ yyval.arg = make_op(O_POP, 1, yyvsp[-1].arg, Nullarg, Nullarg); }
break;
case 146:
#line 702 ":perly.y"
{ yyval.arg = make_op(O_SHIFT, 1, yyvsp[0].arg, Nullarg, Nullarg); }
break;
case 147:
#line 704 ":perly.y"
{ yyval.arg = make_op(O_SHIFT, 1, yyvsp[-1].arg, Nullarg, Nullarg); }
break;
case 148:
#line 706 ":perly.y"
{ yyval.arg = make_op(O_SHIFT, 1,
stab2arg(A_STAB,
aadd(stabent(subline ? "_" : "ARGV", TRUE))),
Nullarg, Nullarg); }
break;
case 149:
#line 711 ":perly.y"
{ static char p[]="/\\s+/";
char *oldend = bufend;
ARG *oldarg = yylval.arg;
bufend=p+5;
(void)scanpat(p);
bufend=oldend;
yyval.arg = make_split(defstab,yylval.arg,Nullarg);
yylval.arg = oldarg; }
break;
case 150:
#line 721 ":perly.y"
{ yyval.arg = mod_match(O_MATCH, yyvsp[-2].arg,
make_split(defstab,yyvsp[-3].arg,yyvsp[-1].arg));}
break;
case 151:
#line 724 ":perly.y"
{ yyval.arg = mod_match(O_MATCH, yyvsp[-1].arg,
make_split(defstab,yyvsp[-2].arg,Nullarg) ); }
break;
case 152:
#line 727 ":perly.y"
{ yyval.arg = mod_match(O_MATCH,
stab2arg(A_STAB,defstab),
make_split(defstab,yyvsp[-1].arg,Nullarg) ); }
break;
case 153:
#line 731 ":perly.y"
{ yyval.arg = make_op(yyvsp[-4].ival, 2,
yyvsp[-2].arg,
listish(make_list(yyvsp[-1].arg)),
Nullarg); }
break;
case 154:
#line 736 ":perly.y"
{ yyval.arg = make_op(yyvsp[-3].ival, 1,
make_list(yyvsp[-1].arg),
Nullarg,
Nullarg); }
break;
case 155:
#line 741 ":perly.y"
{ yyval.arg = make_op(yyvsp[-3].ival, 2,
yyvsp[-1].arg,
Nullarg,
Nullarg); }
break;
case 156:
#line 746 ":perly.y"
{ yyval.arg = make_op(yyvsp[-4].ival, 2,
yyvsp[-2].arg,
listish(make_list(yyvsp[-1].arg)),
Nullarg); }
break;
case 157:
#line 751 ":perly.y"
{ yyval.arg = l(make_op(yyvsp[-1].ival, 1, fixl(yyvsp[-1].ival,yyvsp[0].arg),
Nullarg, Nullarg)); }
break;
case 158:
#line 754 ":perly.y"
{ yyval.arg = l(make_op(yyvsp[0].ival, 1,
stab2arg(A_STAB,defstab),
Nullarg, Nullarg)); }
break;
case 159:
#line 758 ":perly.y"
{ yyval.arg = make_op(yyvsp[0].ival, 0, Nullarg, Nullarg, Nullarg); }
break;
case 160:
#line 760 ":perly.y"
{ yyval.arg = make_op(yyvsp[-2].ival, 0, Nullarg, Nullarg, Nullarg); }
break;
case 161:
#line 762 ":perly.y"
{ yyval.arg = make_op(yyvsp[-2].ival, 0, Nullarg, Nullarg, Nullarg); }
break;
case 162:
#line 764 ":perly.y"
{ yyval.arg = make_op(yyvsp[-3].ival, 1, yyvsp[-1].arg, Nullarg, Nullarg); }
break;
case 163:
#line 766 ":perly.y"
{ yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg);
if (yyvsp[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); }
break;
case 164:
#line 770 ":perly.y"
{ yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg);
if (yyvsp[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); }
break;
case 165:
#line 774 ":perly.y"
{ yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg);
if (yyvsp[-5].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); }
break;
case 166:
#line 778 ":perly.y"
{ yyval.arg = make_op(yyvsp[-3].ival, 1, yyvsp[-1].arg, Nullarg, Nullarg); }
break;
case 167:
#line 780 ":perly.y"
{ yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg); }
break;
case 168:
#line 782 ":perly.y"
{ yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); }
break;
case 169:
#line 784 ":perly.y"
{ arg4 = yyvsp[-1].arg;
yyval.arg = make_op(yyvsp[-6].ival, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); }
break;
case 170:
#line 787 ":perly.y"
{ arg4 = yyvsp[-2].arg; arg5 = yyvsp[-1].arg;
yyval.arg = make_op(yyvsp[-7].ival, 5, yyvsp[-5].arg, yyvsp[-4].arg, yyvsp[-3].arg); }
break;
case 171:
#line 790 ":perly.y"
{ yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); }
break;
case 172:
#line 792 ":perly.y"
{ arg4 = yyvsp[-1].arg;
yyval.arg = make_op(yyvsp[-6].ival, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); }
break;
case 173:
#line 795 ":perly.y"
{ arg4 = yyvsp[-2].arg; arg5 = yyvsp[-1].arg;
yyval.arg = make_op(yyvsp[-7].ival, 5, yyvsp[-5].arg, yyvsp[-4].arg, yyvsp[-3].arg); }
break;
case 174:
#line 798 ":perly.y"
{ arg4 = yyvsp[-3].arg; arg5 = yyvsp[-2].arg; arg6 = yyvsp[-1].arg;
yyval.arg = make_op(yyvsp[-8].ival, 6, yyvsp[-6].arg, yyvsp[-5].arg, yyvsp[-4].arg); }
break;
case 175:
#line 801 ":perly.y"
{ yyval.arg = make_op(yyvsp[-3].ival, 1,
yyvsp[-1].arg,
Nullarg,
Nullarg); }
break;
case 176:
#line 806 ":perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival, 1,
yyvsp[0].arg,
Nullarg,
Nullarg); }
break;
case 177:
#line 811 ":perly.y"
{ yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); }
break;
case 180:
#line 817 ":perly.y"
{ yyval.arg = make_op(yyvsp[0].ival,2,
stab2arg(A_WORD,Nullstab),
stab2arg(A_STAB,defstab),
Nullarg); }
break;
case 181:
#line 822 ":perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival,2,
stab2arg(A_WORD,Nullstab),
maybelistish(yyvsp[-1].ival,make_list(yyvsp[0].arg)),
Nullarg); }
break;
case 182:
#line 827 ":perly.y"
{ yyval.arg = make_op(yyvsp[-1].ival,2,
stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
stab2arg(A_STAB,defstab),
Nullarg);
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch;
}
break;
case 183:
#line 834 ":perly.y"
{ yyval.arg = make_op(yyvsp[-2].ival,2,
stab2arg(A_WORD,stabent(yyvsp[-1].cval,TRUE)),
maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
Nullarg); Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch; }
break;
case 184:
#line 839 ":perly.y"
{ yyval.arg = make_op(yyvsp[-2].ival,2,
stab2arg(A_STAB,yyvsp[-1].stabval),
maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
Nullarg); }
break;
case 185:
#line 844 ":perly.y"
{ yyval.arg = make_op(yyvsp[-2].ival,2,
cmd_to_arg(yyvsp[-1].cmdval),
maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
Nullarg); }
break;
case 186:
#line 851 ":perly.y"
{ yyval.arg = stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE));
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch;}
break;
case 188:
#line 857 ":perly.y"
{ yyval.arg = stab2arg(A_WORD,aadd(stabent(yyvsp[0].cval,TRUE)));
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; }
break;
case 189:
#line 860 ":perly.y"
{ yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); }
break;
case 190:
#line 864 ":perly.y"
{ yyval.arg = stab2arg(A_WORD,hadd(stabent(yyvsp[0].cval,TRUE)));
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; }
break;
case 191:
#line 867 ":perly.y"
{ yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); }
break;
case 192:
#line 871 ":perly.y"
{ yyval.ival = 1; }
break;
case 193:
#line 873 ":perly.y"
{ yyval.ival = 0; }
break;
case 194:
#line 882 ":perly.y"
{ char *s;
yyval.arg = op_new(1);
yyval.arg->arg_type = O_ITEM;
yyval.arg[1].arg_type = A_SINGLE;
yyval.arg[1].arg_ptr.arg_str = str_make(yyvsp[0].cval,0);
for (s = yyvsp[0].cval; *s && isLOWER(*s); s++) ;
if (dowarn && !*s)
warn(
"\"%s\" may clash with future reserved word",
yyvsp[0].cval );
Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch;
}
break;
#line 3228 "y.tab.c"
}
yyssp -= yym;
yystate = *yyssp;
yyvsp -= yym;
yym = yylhs[yyn];
if (yystate == 0 && yym == 0)
{
#if YYDEBUG
if (yydebug)
fprintf(perldbg, "yydebug: after reduction, shifting from state 0 to\
state %d\n", YYFINAL);
#endif
yystate = YYFINAL;
*++yyssp = YYFINAL;
*++yyvsp = yyval;
if (yychar < 0)
{
if ((yychar = yylex()) < 0) yychar = 0;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
fprintf(perldbg, "yydebug: state %d, reading %d (%s)\n",
YYFINAL, yychar, yys);
}
#endif
}
if (yychar == 0) goto yyaccept;
goto yyloop;
}
if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
yystate = yytable[yyn];
else
yystate = yydgoto[yym];
#if YYDEBUG
if (yydebug)
fprintf(perldbg, "yydebug: after reduction, shifting from state %d \
to state %d\n", *yyssp, yystate);
#endif
if (yyssp >= yyss + yystacksize - 1)
{
goto yyoverflow;
}
*++yyssp = yystate;
*++yyvsp = yyval;
goto yyloop;
yyoverflow:
yyerror("yacc stack overflow");
yyabort:
return (1);
yyaccept:
return (0);
}